Seasn,
OK, "/\n»»\s+(.*)/" scheint alle "»»" an Zeilenanfängen zu finden, nicht aber am Anfang des Textes. Das macht "/^»»\s+(.*)/". Kann man die beiden nun irgendwie zusammenfassen?
Freilich:
$text = preg_replace("/(^|\n)»»\s+(.*)/", "<span class="zitat">\2</span>", trim($text));
Ciao,
Harry