Zadanie banalne do pewnego momentu.

Mam dowolny ciąg matematyczny:

$s="1+24*3-(12/2)+18*4+(25*3)/2";

Należy go wyświetlić na stronie aby:

  • każda liczba i znak było jedno pod drugim
  • aby nawiasy nie były rozdzielane

Przykład wyniku dla powyższego $s:

1
+
24
*
3
-
(12/2)
+
18
*
4
+
(25*3)
/
2

Więc biorąc się do pracy:

 
$a = array('+','-','*','/',"(",")");
$b= array("<br>+<br>","<br>-<br>","<br>*<br>","<br>&divide<br>","<br>(",")<br>")

echo str_replace($a,$b,$s);

No i rozdziela nawiasy. Czy można tu zastosować wyrażenie regularne? Jeżeli tak to jak?