Seit PHP 4.4.0 und 5.1.0 werden drei zusätzliche Escape-Sequenzen verwendet, um gängige Zeichentypen abzugleichen, wenn der UTF-8-Modus ausgewählt ist. Sie sind:
p{xx}
Ein Zeichen mit Attribut xx
P{xx}
Ein Zeichen ohne Attribut xx
Jedes Zeichen verfügt über eine solche definierende Eigenschaft, die durch zwei abgekürzte Buchstaben angegeben wird. Aus Gründen der Kompatibilität mit Perl können Sie ^ nach der linken geschweiften Klammer { hinzufügen, um eine Negation anzuzeigen. Beispiel: p{^Lu} ist äquivalent zu P{Lu}.
Wenn über p oder P nur ein Buchstabe angegeben wird, umfasst es alle Eigenschaften, die mit diesem Buchstaben beginnen. In diesem Fall ist die Escape-Sequenz in der geschweiften Klammer optional.
p{L}
pLDie Angabe der Groß- und Kleinschreibung hat keine Auswirkung auf diese Escape-Sequenzen. Beispielsweise stimmt p{Lu} immer mit Großbuchstaben überein.
Unicode-Zeichensätze werden in bestimmten Literalen definiert. Verwenden Sie einen Literalnamen, um einem Zeichen in diesen Zeichensätzen zuzuordnen. Zum Beispiel:
p{Greek}
P{Han}
Wenn es nicht im ermittelten Text vorkommt, wird es in Common konzentriert. Das
X-Escape stimmt mit einer beliebigen Anzahl von Unicode-Zeichen überein. X ist äquivalent zu (?>PMpM*)
Das heißt, es entspricht einem Zeichen ohne das „Mark“-Attribut, gefolgt von einer beliebigen Anzahl von Zeichen mit dem „Mark“-Attribut. und betrachtet diese Sequenz als eine Gruppe von Atomen (Einzelheiten siehe unten). Typischerweise sind Zeichen mit dem Attribut „Mark“ Akzente, die das vorhergehende Zeichen beeinflussen.
Die Verwendung von Unicode-Attributen zum Abgleichen von Zeichen ist nicht schnell, da PCRE eine Datenstruktur mit mehr als 15.000 Zeichen durchsuchen muss. Aus diesem Grund werden in PCRE die traditionellen Escape-Sequenzen d, w anstelle des Unicode-Attributs verwendet.