version 1.1, 2012/02/21 23:05:52
|
version 1.1.1.3, 2014/06/15 19:46:05
|
Line 1
|
Line 1
|
/-- These tests for Unicode property support test PCRE's API and show some of | /-- This test is run only when JIT support is not available. It checks that an |
the compiled code. They are not Perl-compatible. --/ | attempt to use it has the expected behaviour. It also tests things that |
| are different without JIT. --/ |
/[\p{L}]/DZ | |
------------------------------------------------------------------ | /abc/S+I |
Bra | |
[\p{L}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 |
Capturing subpattern count = 0 |
No options |
No options |
No first char | First char = 'a' |
No need char | Need char = 'c' |
| Subject length lower bound = 3 |
| No set of starting bytes |
| JIT support is not available in this version of PCRE |
|
|
/[\p{^L}]/DZ | /a*/SI |
------------------------------------------------------------------ | |
Bra | |
[\P{L}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 |
Capturing subpattern count = 0 |
|
May match empty string |
No options |
No options |
No first char |
No first char |
No need char |
No need char |
| Study returned NULL |
/[\P{L}]/DZ | |
------------------------------------------------------------------ | |
Bra | |
[\P{L}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
No options | |
No first char | |
No need char | |
| |
/[\P{^L}]/DZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{L}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
No options | |
No first char | |
No need char | |
| |
/[abc\p{L}\x{0660}]/8DZ | |
------------------------------------------------------------------ | |
Bra | |
[a-c\p{L}\x{660}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: utf8 | |
No first char | |
No need char | |
| |
/[\p{Nd}]/8DZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Nd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: utf8 | |
No first char | |
No need char | |
1234 | |
0: 1 | |
| |
/[\p{Nd}+-]+/8DZ | |
------------------------------------------------------------------ | |
Bra | |
[+\-\p{Nd}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: utf8 | |
No first char | |
No need char | |
1234 | |
0: 1234 | |
12-34 | |
0: 12-34 | |
12+\x{661}-34 | |
0: 12+\x{661}-34 | |
** Failers | |
No match | |
abcd | |
No match | |
| |
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ | |
------------------------------------------------------------------ | |
Bra | |
/i A\x{391}\x{10427}\x{ff3a}\x{1fb0} | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
First char = 'A' (caseless) | |
No need char | |
| |
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ | |
------------------------------------------------------------------ | |
Bra | |
A\x{391}\x{10427}\x{ff3a}\x{1fb0} | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: utf8 | |
First char = 'A' | |
Need char = 176 | |
| |
/AB\x{1fb0}/8DZ | |
------------------------------------------------------------------ | |
Bra | |
AB\x{1fb0} | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: utf8 | |
First char = 'A' | |
Need char = 176 | |
| |
/AB\x{1fb0}/8DZi | |
------------------------------------------------------------------ | |
Bra | |
/i AB\x{1fb0} | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
First char = 'A' (caseless) | |
Need char = 'B' (caseless) | |
| |
/[\x{105}-\x{109}]/8iDZ | |
------------------------------------------------------------------ | |
Bra | |
[\x{104}-\x{109}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
No first char | |
No need char | |
\x{104} | |
0: \x{104} | |
\x{105} | |
0: \x{105} | |
\x{109} | |
0: \x{109} | |
** Failers | |
No match | |
\x{100} | |
No match | |
\x{10a} | |
No match | |
| |
/[z-\x{100}]/8iDZ | |
------------------------------------------------------------------ | |
Bra | |
[Z\x{39c}\x{178}z-\x{101}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
No first char | |
No need char | |
Z | |
0: Z | |
z | |
0: z | |
\x{39c} | |
0: \x{39c} | |
\x{178} | |
0: \x{178} | |
| | |
0: | | |
\x{80} | |
0: \x{80} | |
\x{ff} | |
0: \x{ff} | |
\x{100} | |
0: \x{100} | |
\x{101} | |
0: \x{101} | |
** Failers | |
No match | |
\x{102} | |
No match | |
Y | |
No match | |
y | |
No match | |
| |
/[z-\x{100}]/8DZi | |
------------------------------------------------------------------ | |
Bra | |
[Z\x{39c}\x{178}z-\x{101}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
No first char | |
No need char | |
| |
/(?:[\PPa*]*){8,}/ | |
| |
/[\P{Any}]/BZ | |
------------------------------------------------------------------ | |
Bra | |
[\P{Any}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[\P{Any}\E]/BZ | |
------------------------------------------------------------------ | |
Bra | |
[\P{Any}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/(\P{Yi}+\277)/ | |
| |
/(\P{Yi}+\277)?/ | |
| |
/(?<=\P{Yi}{3}A)X/ | |
| |
/\p{Yi}+(\P{Yi}+)(?1)/ | |
| |
/(\P{Yi}{2}\277)?/ | |
| |
/[\P{Yi}A]/ | |
| |
/[\P{Yi}\P{Yi}\P{Yi}A]/ | |
| |
/[^\P{Yi}A]/ | |
| |
/[^\P{Yi}\P{Yi}\P{Yi}A]/ | |
| |
/(\P{Yi}*\277)*/ | |
| |
/(\P{Yi}*?\277)*/ | |
| |
/(\p{Yi}*+\277)*/ | |
| |
/(\P{Yi}?\277)*/ | |
| |
/(\P{Yi}??\277)*/ | |
| |
/(\p{Yi}?+\277)*/ | |
| |
/(\P{Yi}{0,3}\277)*/ | |
| |
/(\P{Yi}{0,3}?\277)*/ | |
| |
/(\p{Yi}{0,3}+\277)*/ | |
| |
/\p{Zl}{2,3}+/8BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Zl {2} | |
prop Zl ?+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
\xe2\x80\xa8\xe2\x80\xa8 | |
0: \x{2028}\x{2028} | |
\x{2028}\x{2028}\x{2028} | |
0: \x{2028}\x{2028}\x{2028} | |
| |
/\p{Zl}/8BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Zl | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Lu}{3}+/8BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Lu {3} | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\pL{2}+/8BZ | |
------------------------------------------------------------------ | |
Bra | |
prop L {2} | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Cc}{2}+/8BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Cc {2} | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/^\p{Cs}/8 | |
\?\x{dfff} | |
0: \x{dfff} | |
** Failers | |
No match | |
\x{09f} | |
No match | |
| |
/^\p{Sc}+/8 | |
$\x{a2}\x{a3}\x{a4}\x{a5}\x{a6} | |
0: $\x{a2}\x{a3}\x{a4}\x{a5} | |
\x{9f2} | |
0: \x{9f2} | |
** Failers | |
No match | |
X | |
No match | |
\x{2c2} | |
No match | |
| |
/^\p{Zs}/8 | |
\ \ | |
0: | |
\x{a0} | |
0: \x{a0} | |
\x{1680} | |
0: \x{1680} | |
\x{180e} | |
0: \x{180e} | |
\x{2000} | |
0: \x{2000} | |
\x{2001} | |
0: \x{2001} | |
** Failers | |
No match | |
\x{2028} | |
No match | |
\x{200d} | |
No match | |
| |
/-- These four are here rather than in test 6 because Perl has problems with | |
the negative versions of the properties. --/ | |
| |
/\p{^Lu}/8i | |
1234 | |
0: 1 | |
** Failers | |
0: * | |
ABC | |
No match | |
| |
/\P{Lu}/8i | |
1234 | |
0: 1 | |
** Failers | |
0: * | |
ABC | |
No match | |
| |
/\p{Ll}/8i | |
a | |
0: a | |
Az | |
0: z | |
** Failers | |
0: a | |
ABC | |
No match | |
| |
/\p{Lu}/8i | |
A | |
0: A | |
a\x{10a0}B | |
0: \x{10a0} | |
** Failers | |
0: F | |
a | |
No match | |
\x{1d00} | |
No match | |
| |
/[\x{c0}\x{391}]/8i | |
\x{c0} | |
0: \x{c0} | |
\x{e0} | |
0: \x{e0} | |
| |
/-- The next two are special cases where the lengths of the different cases of | |
the same character differ. The first went wrong with heap frame storage; the | |
second was broken in all cases. --/ | |
| |
/^\x{023a}+?(\x{0130}+)/8i | |
\x{023a}\x{2c65}\x{0130} | |
0: \x{23a}\x{2c65}\x{130} | |
1: \x{130} | |
| |
/^\x{023a}+([^X])/8i | |
\x{023a}\x{2c65}X | |
0: \x{23a}\x{2c65} | |
1: \x{2c65} | |
| |
/\x{c0}+\x{116}+/8i | |
\x{c0}\x{e0}\x{116}\x{117} | |
0: \x{c0}\x{e0}\x{116}\x{117} | |
| |
/[\x{c0}\x{116}]+/8i | |
\x{c0}\x{e0}\x{116}\x{117} | |
0: \x{c0}\x{e0}\x{116}\x{117} | |
| |
/(\x{de})\1/8i | |
\x{de}\x{de} | |
0: \x{de}\x{de} | |
1: \x{de} | |
\x{de}\x{fe} | |
0: \x{de}\x{fe} | |
1: \x{de} | |
\x{fe}\x{fe} | |
0: \x{fe}\x{fe} | |
1: \x{fe} | |
\x{fe}\x{de} | |
0: \x{fe}\x{de} | |
1: \x{fe} | |
| |
/^\x{c0}$/8i | |
\x{c0} | |
0: \x{c0} | |
\x{e0} | |
0: \x{e0} | |
| |
/^\x{e0}$/8i | |
\x{c0} | |
0: \x{c0} | |
\x{e0} | |
0: \x{e0} | |
| |
/-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE | |
will match it only with UCP support, because without that it has no notion | |
of case for anything other than the ASCII letters. --/ | |
| |
/((?i)[\x{c0}])/8 | |
\x{c0} | |
0: \x{c0} | |
1: \x{c0} | |
\x{e0} | |
0: \x{e0} | |
1: \x{e0} | |
| |
/(?i:[\x{c0}])/8 | |
\x{c0} | |
0: \x{c0} | |
\x{e0} | |
0: \x{e0} | |
| |
/-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8 | |
| |
/^\X/8 | |
A | |
0: A | |
A\x{300}BC | |
0: A\x{300} | |
A\x{300}\x{301}\x{302}BC | |
0: A\x{300}\x{301}\x{302} | |
*** Failers | |
0: * | |
\x{300} | |
No match | |
| |
/-- These are PCRE's extra properties to help with Unicodizing \d etc. --/ | |
| |
/^\p{Xan}/8 | |
ABCD | |
0: A | |
1234 | |
0: 1 | |
\x{6ca} | |
0: \x{6ca} | |
\x{a6c} | |
0: \x{a6c} | |
\x{10a7} | |
0: \x{10a7} | |
** Failers | |
No match | |
_ABC | |
No match | |
| |
/^\p{Xan}+/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7} | |
** Failers | |
No match | |
_ABC | |
No match | |
| |
/^\p{Xan}+?/8 | |
\x{6ca}\x{a6c}\x{10a7}_ | |
0: \x{6ca} | |
| |
/^\p{Xan}*/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7} | |
| |
/^\p{Xan}{2,9}/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca} | |
| |
/^\p{Xan}{2,9}?/8 | |
\x{6ca}\x{a6c}\x{10a7}_ | |
0: \x{6ca}\x{a6c} | |
| |
/^[\p{Xan}]/8 | |
ABCD1234_ | |
0: A | |
1234abcd_ | |
0: 1 | |
\x{6ca} | |
0: \x{6ca} | |
\x{a6c} | |
0: \x{a6c} | |
\x{10a7} | |
0: \x{10a7} | |
** Failers | |
No match | |
_ABC | |
No match | |
| |
/^[\p{Xan}]+/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7} | |
** Failers | |
No match | |
_ABC | |
No match | |
| |
/^>\p{Xsp}/8 | |
>\x{1680}\x{2028}\x{0b} | |
0: >\x{1680} | |
>\x{a0} | |
0: >\x{a0} | |
** Failers | |
No match | |
\x{0b} | |
No match | |
| |
/^>\p{Xsp}+/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028} | |
| |
/^>\p{Xsp}+?/8 | |
>\x{1680}\x{2028}\x{0b} | |
0: >\x{1680} | |
| |
/^>\p{Xsp}*/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028} | |
| |
/^>\p{Xsp}{2,9}/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028} | |
| |
/^>\p{Xsp}{2,9}?/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09} | |
| |
/^>[\p{Xsp}]/8 | |
>\x{2028}\x{0b} | |
0: >\x{2028} | |
| |
/^>[\p{Xsp}]+/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028} | |
| |
/^>\p{Xps}/8 | |
>\x{1680}\x{2028}\x{0b} | |
0: >\x{1680} | |
>\x{a0} | |
0: >\x{a0} | |
** Failers | |
No match | |
\x{0b} | |
No match | |
| |
/^>\p{Xps}+/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
| |
/^>\p{Xps}+?/8 | |
>\x{1680}\x{2028}\x{0b} | |
0: >\x{1680} | |
| |
/^>\p{Xps}*/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
| |
/^>\p{Xps}{2,9}/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
| |
/^>\p{Xps}{2,9}?/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09} | |
| |
/^>[\p{Xps}]/8 | |
>\x{2028}\x{0b} | |
0: >\x{2028} | |
| |
/^>[\p{Xps}]+/8 | |
> \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} | |
| |
/^\p{Xwd}/8 | |
ABCD | |
0: A | |
1234 | |
0: 1 | |
\x{6ca} | |
0: \x{6ca} | |
\x{a6c} | |
0: \x{a6c} | |
\x{10a7} | |
0: \x{10a7} | |
_ABC | |
0: _ | |
** Failers | |
No match | |
[] | |
No match | |
| |
/^\p{Xwd}+/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
| |
/^\p{Xwd}+?/8 | |
\x{6ca}\x{a6c}\x{10a7}_ | |
0: \x{6ca} | |
| |
/^\p{Xwd}*/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
| |
/^\p{Xwd}{2,9}/8 | |
A_B12\x{6ca}\x{a6c}\x{10a7} | |
0: A_B12\x{6ca}\x{a6c}\x{10a7} | |
| |
/^\p{Xwd}{2,9}?/8 | |
\x{6ca}\x{a6c}\x{10a7}_ | |
0: \x{6ca}\x{a6c} | |
| |
/^[\p{Xwd}]/8 | |
ABCD1234_ | |
0: A | |
1234abcd_ | |
0: 1 | |
\x{6ca} | |
0: \x{6ca} | |
\x{a6c} | |
0: \x{a6c} | |
\x{10a7} | |
0: \x{10a7} | |
_ABC | |
0: _ | |
** Failers | |
No match | |
[] | |
No match | |
| |
/^[\p{Xwd}]+/8 | |
ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_ | |
| |
/-- A check not in UTF-8 mode --/ | |
| |
/^[\p{Xwd}]+/ | |
ABCD1234_ | |
0: ABCD1234_ | |
| |
/-- Some negative checks --/ | |
| |
/^[\P{Xwd}]+/8 | |
!.+\x{019}\x{35a}AB | |
0: !.+\x{19}\x{35a} | |
| |
/^[\p{^Xwd}]+/8 | |
!.+\x{019}\x{35a}AB | |
0: !.+\x{19}\x{35a} | |
| |
/[\D]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\P{Nd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
1\x{3c8}2 | |
0: \x{3c8} | |
| |
/[\d]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\p{Nd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{6f4}< | |
0: \x{6f4} | |
| |
/[\S]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\P{Xsp}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
\x{1680}\x{6f4}\x{1680} | |
0: \x{6f4} | |
| |
/[\s]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\p{Xsp}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{1680}< | |
0: \x{1680} | |
| |
/[\W]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\P{Xwd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
A\x{1712}B | |
0: \x{1712} | |
| |
/[\w]/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
[\p{Xwd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{1723}< | |
0: \x{1723} | |
| |
/\D/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
notprop Nd | |
Ket | |
End | |
------------------------------------------------------------------ | |
1\x{3c8}2 | |
0: \x{3c8} | |
| |
/\d/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
prop Nd | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{6f4}< | |
0: \x{6f4} | |
| |
/\S/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
notprop Xsp | |
Ket | |
End | |
------------------------------------------------------------------ | |
\x{1680}\x{6f4}\x{1680} | |
0: \x{6f4} | |
| |
/\s/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
prop Xsp | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{1680}> | |
0: \x{1680} | |
| |
/\W/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
notprop Xwd | |
Ket | |
End | |
------------------------------------------------------------------ | |
A\x{1712}B | |
0: \x{1712} | |
| |
/\w/WBZ8 | |
------------------------------------------------------------------ | |
Bra | |
prop Xwd | |
Ket | |
End | |
------------------------------------------------------------------ | |
>\x{1723}< | |
0: \x{1723} | |
| |
/[[:alpha:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{L}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:lower:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Ll}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:upper:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Lu}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:alnum:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Xan}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:ascii:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\x00-\x7f] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:blank:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\x09 \xa0] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:cntrl:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\x00-\x1f\x7f] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:digit:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Nd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:graph:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[!-~] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:print:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[ -~] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:punct:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[!-/:-@[-`{-~] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:space:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Xps}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:word:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{Xwd}] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/[[:xdigit:]]/WBZ | |
------------------------------------------------------------------ | |
Bra | |
[0-9A-Fa-f] | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/-- Unicode properties for \b abd \B --/ | |
| |
/\b...\B/8W | |
abc_ | |
0: abc | |
\x{37e}abc\x{376} | |
0: abc | |
\x{37e}\x{376}\x{371}\x{393}\x{394} | |
0: \x{376}\x{371}\x{393} | |
!\x{c0}++\x{c1}\x{c2} | |
0: ++\x{c1} | |
!\x{c0}+++++ | |
0: \x{c0}++ | |
| |
/-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/ | |
| |
/\b...\B/8 | |
abc_ | |
0: abc | |
** Failers | |
0: Fai | |
\x{37e}abc\x{376} | |
No match | |
\x{37e}\x{376}\x{371}\x{393}\x{394} | |
No match | |
!\x{c0}++\x{c1}\x{c2} | |
No match | |
!\x{c0}+++++ | |
No match | |
| |
/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/ | |
| |
/\b...\B/W | |
abc_ | |
0: abc | |
!\x{c0}++\x{c1}\x{c2} | |
0: ++\xc1 | |
!\x{c0}+++++ | |
0: \xc0++ | |
| |
/-- POSIX interface --/ | |
| |
/\w/P | |
+++\x{c2} | |
No match: POSIX code 17: match failed | |
| |
/\w/WP | |
+++\x{c2} | |
0: \xc2 | |
| |
/-- Some of these are silly, but they check various combinations --/ | |
| |
/[[:^alpha:][:^cntrl:]]+/8WBZ | |
------------------------------------------------------------------ | |
Bra | |
[ -~\x80-\xff\P{L}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
123 | |
0: 123 | |
abc | |
0: abc | |
| |
/[[:^cntrl:][:^alpha:]]+/8WBZ | |
------------------------------------------------------------------ | |
Bra | |
[ -~\x80-\xff\P{L}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
123 | |
0: 123 | |
abc | |
0: abc | |
| |
/[[:alpha:]]+/8WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\p{L}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
abc | |
0: abc | |
| |
/[[:^alpha:]\S]+/8WBZ | |
------------------------------------------------------------------ | |
Bra | |
[\P{L}\P{Xsp}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
123 | |
0: 123 | |
abc | |
0: abc | |
| |
/[^\d]+/8WBZ | |
------------------------------------------------------------------ | |
Bra | |
[^\p{Nd}]+ | |
Ket | |
End | |
------------------------------------------------------------------ | |
abc123 | |
0: abc | |
abc\x{123} | |
0: abc\x{123} | |
\x{660}abc | |
0: abc | |
| |
/\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}/8iSI | |
Capturing subpattern count = 0 | |
Options: caseless utf8 | |
No first char | |
No need char | |
Subject length lower bound = 17 | |
Starting byte set: \xd0 \xd1 | |
\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f} | |
0: \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f} | |
\x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f} | |
0: \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f} | |
| |
/\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Lu ++ | |
9 | |
prop Lu + | |
B | |
prop Lu ++ | |
b | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ | |
------------------------------------------------------------------ | |
Bra | |
notprop Lu + | |
9 | |
notprop Lu ++ | |
B | |
notprop Lu + | |
b | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ | |
------------------------------------------------------------------ | |
Bra | |
notprop Lu + | |
9 | |
notprop Lu ++ | |
B | |
notprop Lu + | |
b | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Han}+X\p{Greek}+\x{370}/BZ8 | |
------------------------------------------------------------------ | |
Bra | |
prop Han ++ | |
X | |
prop Greek + | |
\x{370} | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Xan}+!\p{Xan}+A/BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Xan ++ | |
! | |
prop Xan + | |
A | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Xsp}+!\p{Xsp}\t/BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Xsp ++ | |
! | |
prop Xsp | |
\x09 | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Xps}+!\p{Xps}\t/BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Xps ++ | |
! | |
prop Xps | |
\x09 | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/\p{Xwd}+!\p{Xwd}_/BZ | |
------------------------------------------------------------------ | |
Bra | |
prop Xwd ++ | |
! | |
prop Xwd | |
_ | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/A+\p{N}A+\dB+\p{N}*B+\d*/WBZ | |
------------------------------------------------------------------ | |
Bra | |
A++ | |
prop N | |
A++ | |
prop Nd | |
B+ | |
prop N *+ | |
B+ | |
prop Nd * | |
Ket | |
End | |
------------------------------------------------------------------ | |
| |
/-- These behaved oddly in Perl, so they are kept in this test --/ | |
| |
/(\x{23a}\x{23a}\x{23a})?\1/8i | |
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} | |
No match | |
| |
/(ȺȺȺ)?\1/8i | |
ȺȺȺⱥⱥ | |
No match | |
| |
/(\x{23a}\x{23a}\x{23a})?\1/8i | |
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
1: \x{23a}\x{23a}\x{23a} | |
| |
/(ȺȺȺ)?\1/8i | |
ȺȺȺⱥⱥⱥ | |
0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
1: \x{23a}\x{23a}\x{23a} | |
| |
/(\x{23a}\x{23a}\x{23a})\1/8i | |
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65} | |
No match | |
| |
/(ȺȺȺ)\1/8i | |
ȺȺȺⱥⱥ | |
No match | |
| |
/(\x{23a}\x{23a}\x{23a})\1/8i | |
\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
1: \x{23a}\x{23a}\x{23a} | |
| |
/(ȺȺȺ)\1/8i | |
ȺȺȺⱥⱥⱥ | |
0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65} | |
1: \x{23a}\x{23a}\x{23a} | |
| |
/(\x{2c65}\x{2c65})\1/8i | |
\x{2c65}\x{2c65}\x{23a}\x{23a} | |
0: \x{2c65}\x{2c65}\x{23a}\x{23a} | |
1: \x{2c65}\x{2c65} | |
| |
/(ⱥⱥ)\1/8i | |
ⱥⱥȺȺ | |
0: \x{2c65}\x{2c65}\x{23a}\x{23a} | |
1: \x{2c65}\x{2c65} | |
| |
/(\x{23a}\x{23a}\x{23a})\1Y/8i | |
X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ | |
0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y | |
1: \x{23a}\x{23a}\x{23a} | |
| |
/(\x{2c65}\x{2c65})\1Y/8i | |
X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ | |
0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y | |
1: \x{2c65}\x{2c65} | |
| |
/-- --/ | |
| |
/-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/ | |
| |
/^[\p{Batak}]/8 | |
\x{1bc0} | |
0: \x{1bc0} | |
\x{1bff} | |
0: \x{1bff} | |
** Failers | |
No match | |
\x{1bf4} | |
No match | |
| |
/^[\p{Brahmi}]/8 | |
\x{11000} | |
0: \x{11000} | |
\x{1106f} | |
0: \x{1106f} | |
** Failers | |
No match | |
\x{1104e} | |
No match | |
| |
/^[\p{Mandaic}]/8 | |
\x{840} | |
0: \x{840} | |
\x{85e} | |
0: \x{85e} | |
** Failers | |
No match | |
\x{85c} | |
No match | |
\x{85d} | |
No match | |
| |
/-- --/ | |
| |
/(\X*)(.)/s8 | |
A\x{300} | |
0: A | |
1: | |
2: A | |
| |
/^S(\X*)e(\X*)$/8 | |
Stéréo | |
No match | |
| |
/^\X/8 | |
́réo | |
No match | |
| |
/^a\X41z/<JS> | |
aX41z | |
0: aX41z | |
*** Failers | |
No match | |
aAz | |
No match | |
| |
/(?<=ab\Cde)X/8 | |
Failed: \C not allowed in lookbehind assertion at offset 10 | |
|
|
/-- End of testinput13 --/ |
/-- End of testinput13 --/ |