(.*) sucht den längst möglichen Treffer, während (.*?) den kürztmöglichen (also den, den du willst) sucht.
dann gibt mir php diesen fehler aus:
Warning: eregi_replace() [function.eregi-replace]: REG_BADRPT in E:\Programme\xampp\htdocs\test\rep.php on line 5
Ja, den Fehler habe ich auch bekommen; mir behagt die POSIX-Syntax von den ereg-Befehlen nicht, mir den Perl-kompatiblen preg-Funktionen würde es so funktioniern:
$msg = preg_replace("/[color=(.*?)](.*?)[/color]/i",'<span style="color:$1;">$2</span>',$msg);