Metaznaky

Myslel jsem si, že když napíšu
$adresa = Str_Replace ("^http://.* $", "<a href='^http://.* $'>^http://.* $</a>", $adresa);

tak mi to převede adresu na odkaz. leč to nefunguje. Jak to tedy je?
str_replace neumí regex :))
kdyžtak preg_replace nebo ereg_replace.
Jaké jsou povoleny znaky v url adrese?
Vím, že tam je:
a-z0-9?%=&@-

Je tam eště něco?
/:._
jinak to výše je špatně, má to být tak:
EReg_Replace("(http://)[-z0-9?%=&@-/:._~]*", "<a href='\\0'>\\0</a>", $adresa);