Zwei Dinge musst du noch ändern:
1. den Modifier U zu beiden regulären Ausdrücken hinzufügen
2. der Teil zwischen \[URL=(\S+)\] und \[\/URL\] darf nicht \S sein, da zwischen img und src durch das Ersetzen des Bildes bereits ein Leerzeichen vorkommt. Besser wäre hier .+.
Das Script sieht dann so aus:
PHP-Code:
<?php
$body = "[URL=www.der-seega.de][img=http://img6.smiliedb.de/sdb82928.gif][/URL]";
$body2 = $body;
$body = preg_replace('/\[IMG=(\S+)]/iU', '<img src="\\1">', $body);
$body = preg_replace('/\[URL=(\S+)\](.+)\[\/URL\]/iU', ' <a href="http://\\1" target="_blank">\\2</a>', $body);
echo htmlentities($body2) . ' <br> ' . htmlentities($body);
?>