| /-- These tests for Unicode property support test PCRE's API and show some of |
| the compiled code. They are not Perl-compatible. --/ |
| |
| /[\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 |
| |
| /[\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 --/ |