Начиная с версии 5.1.0, были добавлены три дополнительные управляющие последовательности, совпадающих с некоторыми общими символьными типами в режиме UTF-8. Вот они:
Имена свойств, представленные выше как xx, ограничены общими категориями свойств Unicode. Каждый символ имеет ровно одно такое свойство, указываемое двубуквенной аббревиатурой. Для совместимости с Perl также можно указать отрицание добавлением знака "^" между открывающей скобкой и именем свойства. Например, \p{^Lu} - это то же самое, что и \P{Lu}.
Если с \p или \P указана только одна буква, она включает все свойства, которые начинаются с этой буквы. В этом случае, если не используется отрицание, фигурные скобки необязательны; следующие два примера эквивалентны:
\p{L}
\pL
| Свойство | Совпадение | Замечание |
|---|---|---|
| C | Другое | |
| Cc | Control | |
| Cf | Формат | |
| Cn | Не присвоено | |
| Co | Частное использование | |
| Cs | Суррогат | |
| L | Буква | Включает следующие свойства: Ll, Lm, Lo, Lt и Lu. |
| Ll | Строчная буква | |
| Lm | Модификатор буквы | |
| Lo | Другая буква | |
| Lt | Заглавная буква | |
| Lu | Прописная буква | |
| M | Знак | |
| Mc | Пробельный знак | |
| Me | Окружающий знак | |
| Mn | Непробельный знак | |
| N | Число | |
| Nd | Десятичное число | |
| Nl | Буквенное число | |
| No | Другое число | |
| P | Пунктуация | |
| Pc | Соединяющая пунктуация | |
| Pd | Знаки тире | |
| Pe | Закрывающая пунктуация | |
| Pf | Заключительная пунктуация | |
| Pi | Начальная пунктуация | |
| Po | Другая пунктуация | |
| Ps | Открывающая пунктуация | |
| S | Символ | |
| Sc | Денежный знак | |
| Sk | Модификатор символа | |
| Sm | Математический символ | |
| So | Другой символ | |
| Z | Разделитель | |
| Zl | Разделитель строки | |
| Zp | Разделитель абзаца | |
| Zs | Пробельный разделитель |
Расширенные свойства, такие как греческие ("Greek") или музыкальные символы ("InMusicalSymbols") не поддерживаются в PCRE.
Указывание регистро-независимого (безрегистрового) режима не влияет на эти управляющие последовательности. Например, \p{Lu} всегда совпадает только с прописными буквами.
Последовательность \X совпадает с любым числом Unicode символов, формирующих расширенную Unicode последовательность. \X эквивалентно (?>\PM\pM*).
Это означает, что совпадет символ без свойства "знака" ("mark" property), за которым идет ноль или более символов со свойством "знака", и вся последовательность обрабатывается как одна неделимая группа (смотрите ниже). Символы со свойством "знака" - это обычно знаки ударения, влияющие на предыдущий символ.
Совпадение символов по Unicode свойству не является быстрой операцией, потому для этой цели PCRE необходимо осуществить поиск в структуре данных с более чем пятнадцатью тысяч символов. Поэтому традиционные управляющие последовательности в PCRE, такие как \d и \w, не используют Unicode свойства.