Tobias Perschon: Regex

Beitrag lesen

ich möchte alle vorkommen von [color=FARBE]TEXT[/color] ersetzen mit <span style="color:FARBE;">TEXT</span>

allerdings gibt es ein problem wenn in dem string öfters ein color tag steht:
z.b.:
$msg = "[color=red]text1[/color] Blabla [color=green]text2[/color]";

$msg = eregi_replace("[color=(.*)](.*)[/color]",'<span style="color:\1;">\2</span>',$msg);

echo $msg;

produziert:

<span style="color:red]text1[/color] Blabla [color=green;">text2</span>

wie kann ich den eregi_replace befehl anpassen das es auch funktioniert wenn mehrere color tags festgelegt werden?