PHP 4.4.0 및 5.1.0부터 UTF-8 모드를 선택할 때 일반적인 문자 유형을 일치시키기 위해 세 가지 추가 이스케이프 시퀀스가 사용됩니다.
p{xx}
xx 속성이 있는 문자
P{xx}
xx 속성이 없는 문자
각 문자에는 두 개의 약어로 지정된 하나의 명확한 속성이 있습니다. Perl과의 호환성을 위해 왼쪽 중괄호 { 뒤에 ^를 추가하여 부정을 나타낼 수 있습니다. 예를 들어, p{^Lu}는 P{Lu}와 동일합니다.
p 또는 P를 통해 문자 하나만 지정하면 해당 문자로 시작하는 모든 속성이 포함됩니다. 이 경우 중괄호 이스케이프 시퀀스는 선택 사항입니다.
p{L}
pL대소문자를 구분하지 않는 일치를 지정하면 이러한 이스케이프 시퀀스에 영향을 주지 않습니다. 예를 들어 p{Lu}는 항상 대문자와 일치합니다.
유니코드 문자 집합은 특정 리터럴로 정의됩니다. 이러한 문자 세트의 문자와 일치하려면 리터럴 이름을 사용하십시오. 예:
p{Greek}
P{Han}
결정된 텍스트에 없으면 공통으로 집중됩니다.
X 이스케이프는 모든 수의 유니코드 문자와 일치합니다. X는 (?>PMpM*)
과 동일합니다. 즉, "mark" 속성이 없는 문자와 그 뒤에 "mark" 속성이 있는 문자가 여러 개나옵니다. 이 순서를 원자 그룹으로 간주합니다(자세한 내용은 아래 참조). 일반적으로 "mark" 속성이 있는 문자는 앞의 문자에 영향을 주는 악센트입니다.
PCRE는 15000자가 넘는 문자를 포함하는 데이터 구조를 검색해야 하기 때문에 유니코드 속성을 사용하여 문자를 일치시키는 것은 빠르지 않습니다. 이것이 바로 PCRE에서 유니코드 속성 대신 전통적인 이스케이프 시퀀스 d, w가 사용되는 이유입니다.