 | Der Backtracking-Algorithmus (insbesondere die
Regeln 3 und 5) können zu einem exponentiell anwachsenden
Aufwand führen, der bei längeren Texten unzumutbar ist.
Hierfür kann die Konstruktion (?>regexp) recht nützlich
sein, die regexp an der aktuellen Stelle im Text untersucht,
als ob kein umgebender regulärer Ausdruck existieren würde.
Backtracking kommt entsprechend nicht zum Zuge.
|
 | Mit (?(condition)yes-pattern|no-pattern) bzw.
(?(condition)yes-pattern) können reguläre Ausdrücke
in Abhängigkeit von einer Bedingung eingefügt werden,
die entweder
 | eine natürliche Zahl n ist und dann zutrifft,
falls das Muster der n-ten Klammer zutraf oder
|
 | eine Zusicherung ist, die keinen Text erfaßt
(Vor- oder Rückschau, bestimmte Punkte).
|
|
 | Mit (?{ code }) können Perl-Ausdrücke eingebettet
werden, die immer zutreffen. Da Sichtbarkeitsbereiche
entsprechend der Backtracking-Ebenen gezogen werden,
kann auf diese Weise beispielsweise ermittelt werden, welchen
Wert ein bestimmter Quantifikator angenommen hat.
|