Hallo,
$pattern = '#(^|[^"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
Wollen wir https://... nicht zulassen? Warum der Ausschluß?
$output = preg_replace($pattern,"\1<a target="_blank" href="\2\3"><u>\2\3</u></a>\4",$input);
Und das <u> können wir uns doch bitte auch sparen. Links sind schon unterstrichen (sei denn, man hat sie verunstaltet)
Grüße aus Würzburg
Julian