komisch ist das gar nicht - ".*?" nimmt eben die wenigsten zutreffenden Zeichen, auch wenn es keine sind. Etwas wie "\d+" oder "[^ ]+" kann Dir jedoch ebenfalls helfen.
bei diesen replace-funktionen ist man ja nie ganz sicher, was sie machen :-) welches der beiden steht denn für zahlen? 1-3 stellige zahlen, um genau zu sein?
Aha. Denke bitte hierüber nach: Ich habe nicht gefragt, was in $replace[0] steht, sondern was in $replace steht.
was soll schon in $replace stehen wenn es ein array ist? nichts natürlich, wenn du echo $replace machst kommt Array...