Ho fatto questa funzione. L'url che sta nella frase viene riconosciuto ma devi fare cmq delle prove per vedere se ci sono bug nella regex.
Codice PHP:
function urlToHref ( $string ) {
return ereg_replace("([url]http://?[/url]|[url]www.[/url]|[url]http://www.?[/url])[a-zA-Z0-9\-\_]+.[a-z]{2,3}(\/[a-zA-Z0-9]*)*(.[a-zA-Z0-9]{3,4}){1}\?{1}([a-zA-Z0-9]+\={1}[a-zA-Z0-9]+\&?)*",'[url="\\0"]\\0[/url]', $string );
}
$str = 'Vediamo se riconosce questo url [url]http://www.mircov.org/String/To/page.htm?var1=val1&var2=var2[/url]' ;
echo urlToHref( $str ) ;
Provala e fammi sapere se funziona. Ciao!