A partir de 5.1.0, están disponibles tres secuencias de escape adicionales para comparar tipos de caracteres genéricos cuando el modo UTF-8 está seleccionado. Son:
Los nombres de las propiedades representadas arriba por xx están limitadas a las propiedades de la categoría general de Unicode. Cada carácter tiene exactamente una propiedad, especificada por una abreviatura de dos letras. Por compatibilidad con Perl, la negación se puede especificar incluyendo un acento circunflejo entre la llave de apertura y el nombre de la propiedad. Por ejemplo, \p{^Lu} es lo mismo que \P{Lu}.
Si sólo se especifica una letra con \p o \P, se incluyen todas las propiedades que comienzan con esa letra. En este caso, en la ausencia de negación, las llaves en la secuencia de escape son opcionales; estos dos ejemplos tienen el mismo efecto:
\p{L} \pL
Propiedad | Coincidencias | Notas |
---|---|---|
C | Otro | |
Cc | Control | |
Cf | Formato | |
Cn | Sin asignar | |
Co | Uso privado | |
Cs | Sustituto | |
L | Letra | Incluye las siguientes propiedades: Ll, Lm, Lo, Lt y Lu. |
Ll | Letra minúscula | |
Lm | Letra modificadora | |
Lo | Otra letra | |
Lt | Letra de título | |
Lu | Letra mayúscula | |
M | Marca | |
Mc | Marca de espacio | |
Me | Marca de cierre | |
Mn | Marca de no-espacio | |
N | Número | |
Nd | Número decimal | |
Nl | Número letra | |
No | Otro número | |
P | Puntuación | |
Pc | Puntuación de conexión | |
Pd | Puntuación guión | |
Pe | Puntuación de cierre | |
Pf | Puntuación final | |
Pi | Puntuación inicial | |
Po | Otra puntuación | |
Ps | Puntuación de apertura | |
S | Símbolo | |
Sc | Símbolo de moneda | |
Sk | Símbolo modificador | |
Sm | Símbolo matemático | |
So | Otro símbolo | |
Z | Separador | |
Zl | Separador de línea | |
Zp | Separador de párrafo | |
Zs | Separador de espacio |
Las propiedades extendidas tales como InMusicalSymbols no están admitidas por PCRE.
El especificar coincidicencias insensibles a mayúsculas-minúsculas no afecta a estas secuencias de escape. Por ejemplo, \p{Lu} siempre coincide con letras mayúsculas.
Los conjuntos de caracteres Unicode están definidos como pertenecientes a ciertos alfabetos. Se puede hacer coincidir un carácter de uno de estos conjuntos usando un nombre de alfabeto. Por ejemplo:
Aquellos que no son parte de un alfabeto identificado, son metidos en el mismo saco como Common. La lista actual de alfabetos es:
Arabic | Armenian | Avestan | Balinese | Bamum | |
Batak | Bengali | Bopomofo | Brahmi | Braille | |
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma | |
Cham | Cherokee | Common | Coptic | Cuneiform | |
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs | |
Ethiopic | Georgian | Glagolitic | Gothic | Greek | |
Gujarati | Gurmukhi | Han | Hangul | Hanunoo | |
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi | |
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana | |
Kayah_Li | Kharoshthi | Khmer | Lao | Latin | |
Lepcha | Limbu | Linear_B | Lisu | Lycian | |
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive | |
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue | |
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian | |
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa | |
Phoenician | Rejang | Runic | Samaritan | Saurashtra | |
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese | |
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le | |
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu | |
Thaana | Thai | Tibetan | Tifinagh | Ugaritic | |
Vai | Yi |
El escape \X coincide con cualquier número de caracteres Unicode que forman un secuencia Unicode extendida. \X es equivalente a (?>\PM\pM*).
Es decir, coincide con un carácter sin la propiedad "marca", seguido por cero o más caracteres sin la propiedad "marca", y trata la secuencia como un grupo atómico (véase más adelante). Los caracteres con la propiedad "marca" son típicamente acentos que afectan al carácter precedente.
La comparación de caracteres por propiedades Unicode no es rápida, porque PCRE ha de buscar una estructura que contiene datos por más de quince mil caracteres. Es por esto por lo que las secuencias de escape tradicionales tales como \d y \w no usan propiedades Unicode en PCRE.