Günther S: Regex: Look(ahead|behind)

Hallo,

ich habe ein kleines Problem mit Lookaheads und -behinds.

Anwendungsfall BBCode:

  
$pattern = '@\[zitat(=(.*?))?\]((?U).*)\[/zitat\]@is';  

Funktioniert soweit ganz gut, es soll aber noch insofern geändert werden, als dass im mittleren Part ((?U.*) kein anfangs-tag [zitat(=(.*?))?] mehr stehen soll. Das ((?U.*) soll also die Bedeutung bekommen "matche (nicht-gierig), sofern kein anfangs tag in dem string ist". Bei der Suche nach Möglichkeiten, das zu realisieren, bin ich auf Lookaheads und -behinds gestoßen, allerdings verstehe ich das so, als könnte man nur prüfen, ob sich das Anfangs-Tag am Anfang oder Ende des mittleren Teils befindet, nicht aber mittendrin. Wie kann man das denn bewerkstelligen?

Gruß,
Günther