\d+) y los símbols + y *.
No asuma que los terminales están separados por blancos; esto es, una entrada legal podría ser:
4 5 3+*Una posibilidad es usar el operador de sustitución
s/regexp/subst/g con la opción global (g) para insertar los blancos
que faltan. Vea las secciones 3.2 y 3.12.
Una alternativa es el operador splice (sección 1.13.2).
La subrutina que hace el cálculo recibe como entrada la lista con los terminales y devuelve el resultado de la operación.
Casiano Rodríguez León