hm ... scheint, als habe ich selbst eine Lösung gefunden (*stolzbin*). Ich hatte die ganze Zeit Lookahead und Lookbehind verwechselt - das da tut bislang das, was ich will:
$pattern = '/((?<![\"])((f|ht){1}tp(s){0,1}:\/\/)[-a-zA-Z0-9@:%_\+.;,~#?&\/\/=]+)/i';
$replacement = '<a href="\\1" target="_blank">\\1</a>';
$text = preg_replace($pattern, $replacement, $text);
Grüße und trotzdem Danke,
WiMu