Tobias Perschon: preg statt ereg bei URL erkennung

Beitrag lesen

hallo!
also ich möchte das sachen wie http://www.test.at in links umgewandelt werden...
das beispiel von php.net funktioniert ganz gut:

$input = "http://www.test.at";

$input = eregi_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href="\0" target="_blank">\0</a>", $input);

$input -> <a href="http://www.test.php" target="_blank">http://www.test.php</a>

hier gibt es allerdings ein problem:
(mit einem leerzeichen nach at geht es)

$input = "[b]http://www.test.at[/b]";

$input = eregi_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href="\0" target="_blank">\0</a>", $input);

$input -> <a href="http://www.loot.at/?test=lalala[/b" target="_blank">http://www.loot.at/?test=lalala[/b</a>]

wie kann muss man die regex verändern das er [/b nicht mitnimmt... also vor [ aufhört?
[ kommt sowieso nie in einer url vor...

ich hab mir gedacht mit nem negativen oder positiven lookahead... allerdings hab ich den neg/pos lookahead synax nur für perl also preg gefunden (?=[)  <- könnte der das gewünschte ergebniss bringen

und noch ne frage:
was macht das ^<> bei [^<>[:space:]]?

grüße