alla fine ero riuscito a risolvere così...

preg_match_all("|$url_pattern|",$text,$out, PREG_PATTERN_ORDER);

non so se è ugualmente corretta come soluzione... se mi dici che la tua è migliore metto quella, per il momento sembra funzionare però...

grazie comunque