1 /-- These tests for Unicode property support test PCRE's API and show some of
2 the compiled code. They are not Perl-compatible. --/
5 ------------------------------------------------------------------
10 ------------------------------------------------------------------
11 Capturing subpattern count = 0
17 ------------------------------------------------------------------
22 ------------------------------------------------------------------
23 Capturing subpattern count = 0
29 ------------------------------------------------------------------
34 ------------------------------------------------------------------
35 Capturing subpattern count = 0
41 ------------------------------------------------------------------
46 ------------------------------------------------------------------
47 Capturing subpattern count = 0
52 /[abc\p{L}\x{0660}]/8DZ
53 ------------------------------------------------------------------
58 ------------------------------------------------------------------
59 Capturing subpattern count = 0
65 ------------------------------------------------------------------
70 ------------------------------------------------------------------
71 Capturing subpattern count = 0
79 ------------------------------------------------------------------
84 ------------------------------------------------------------------
85 Capturing subpattern count = 0
100 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ
101 ------------------------------------------------------------------
103 NC A\x{391}\x{10427}\x{ff3a}\x{1fb0}
106 ------------------------------------------------------------------
107 Capturing subpattern count = 0
108 Options: caseless utf8
109 First char = 'A' (caseless)
112 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ
113 ------------------------------------------------------------------
115 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
118 ------------------------------------------------------------------
119 Capturing subpattern count = 0
125 ------------------------------------------------------------------
130 ------------------------------------------------------------------
131 Capturing subpattern count = 0
137 ------------------------------------------------------------------
142 ------------------------------------------------------------------
143 Capturing subpattern count = 0
144 Options: caseless utf8
145 First char = 'A' (caseless)
146 Need char = 'B' (caseless)
148 /[\x{105}-\x{109}]/8iDZ
149 ------------------------------------------------------------------
154 ------------------------------------------------------------------
155 Capturing subpattern count = 0
156 Options: caseless utf8
173 ------------------------------------------------------------------
175 [Z\x{39c}\x{178}z-\x{101}]
178 ------------------------------------------------------------------
179 Capturing subpattern count = 0
180 Options: caseless utf8
211 ------------------------------------------------------------------
213 [Z\x{39c}\x{178}z-\x{101}]
216 ------------------------------------------------------------------
217 Capturing subpattern count = 0
218 Options: caseless utf8
225 ------------------------------------------------------------------
230 ------------------------------------------------------------------
233 ------------------------------------------------------------------
238 ------------------------------------------------------------------
246 /\p{Yi}+(\P{Yi}+)(?1)/
252 /[\P{Yi}\P{Yi}\P{Yi}A]/
256 /[^\P{Yi}\P{Yi}\P{Yi}A]/
272 /(\P{Yi}{0,3}?\277)*/
274 /(\p{Yi}{0,3}+\277)*/
277 ------------------------------------------------------------------
283 ------------------------------------------------------------------
284 \xe2\x80\xa8\xe2\x80\xa8
286 \x{2028}\x{2028}\x{2028}
287 0: \x{2028}\x{2028}\x{2028}
290 ------------------------------------------------------------------
295 ------------------------------------------------------------------
298 ------------------------------------------------------------------
303 ------------------------------------------------------------------
306 ------------------------------------------------------------------
311 ------------------------------------------------------------------
314 ------------------------------------------------------------------
319 ------------------------------------------------------------------
330 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
331 0: $\x{a2}\x{a3}\x{a4}\x{a5}
361 /-- These four are here rather than in test 6 because Perl has problems with
362 the negative versions of the properties. --/
408 /-- The next two are special cases where the lengths of the different cases of
409 the same character differ. The first went wrong with heap frame storage; the
410 second was broken in all cases. --/
412 /^\x{023a}+?(\x{0130}+)/8i
413 \x{023a}\x{2c65}\x{0130}
414 0: \x{23a}\x{2c65}\x{130}
423 \x{c0}\x{e0}\x{116}\x{117}
424 0: \x{c0}\x{e0}\x{116}\x{117}
427 \x{c0}\x{e0}\x{116}\x{117}
428 0: \x{c0}\x{e0}\x{116}\x{117}
456 /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
457 will match it only with UCP support, because without that it has no notion
458 of case for anything other than the ASCII letters. --/
474 /-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
481 A\x{300}\x{301}\x{302}BC
482 0: A\x{300}\x{301}\x{302}
488 /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
507 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
508 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
515 \x{6ca}\x{a6c}\x{10a7}_
519 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
520 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
523 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
527 \x{6ca}\x{a6c}\x{10a7}_
547 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
548 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
555 >\x{1680}\x{2028}\x{0b}
565 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
566 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
569 >\x{1680}\x{2028}\x{0b}
573 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
574 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
577 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
578 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
581 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
589 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
590 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
593 >\x{1680}\x{2028}\x{0b}
603 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
604 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
607 >\x{1680}\x{2028}\x{0b}
611 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
612 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
615 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
616 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
619 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
627 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
628 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
649 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
650 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
653 \x{6ca}\x{a6c}\x{10a7}_
657 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
658 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
661 A_B12\x{6ca}\x{a6c}\x{10a7}
662 0: A_B12\x{6ca}\x{a6c}\x{10a7}
665 \x{6ca}\x{a6c}\x{10a7}_
687 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
688 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
690 /-- A check not in UTF-8 mode --/
696 /-- Some negative checks --/
707 ------------------------------------------------------------------
712 ------------------------------------------------------------------
717 ------------------------------------------------------------------
722 ------------------------------------------------------------------
727 ------------------------------------------------------------------
732 ------------------------------------------------------------------
733 \x{1680}\x{6f4}\x{1680}
737 ------------------------------------------------------------------
742 ------------------------------------------------------------------
747 ------------------------------------------------------------------
752 ------------------------------------------------------------------
757 ------------------------------------------------------------------
762 ------------------------------------------------------------------
767 ------------------------------------------------------------------
772 ------------------------------------------------------------------
777 ------------------------------------------------------------------
782 ------------------------------------------------------------------
787 ------------------------------------------------------------------
792 ------------------------------------------------------------------
793 \x{1680}\x{6f4}\x{1680}
797 ------------------------------------------------------------------
802 ------------------------------------------------------------------
807 ------------------------------------------------------------------
812 ------------------------------------------------------------------
817 ------------------------------------------------------------------
822 ------------------------------------------------------------------
827 ------------------------------------------------------------------
832 ------------------------------------------------------------------
835 ------------------------------------------------------------------
840 ------------------------------------------------------------------
843 ------------------------------------------------------------------
848 ------------------------------------------------------------------
851 ------------------------------------------------------------------
856 ------------------------------------------------------------------
859 ------------------------------------------------------------------
864 ------------------------------------------------------------------
867 ------------------------------------------------------------------
872 ------------------------------------------------------------------
875 ------------------------------------------------------------------
880 ------------------------------------------------------------------
883 ------------------------------------------------------------------
888 ------------------------------------------------------------------
891 ------------------------------------------------------------------
896 ------------------------------------------------------------------
899 ------------------------------------------------------------------
904 ------------------------------------------------------------------
907 ------------------------------------------------------------------
912 ------------------------------------------------------------------
915 ------------------------------------------------------------------
920 ------------------------------------------------------------------
923 ------------------------------------------------------------------
928 ------------------------------------------------------------------
931 ------------------------------------------------------------------
936 ------------------------------------------------------------------
938 /-- Unicode properties for \b abd \B --/
945 \x{37e}\x{376}\x{371}\x{393}\x{394}
946 0: \x{376}\x{371}\x{393}
947 !\x{c0}++\x{c1}\x{c2}
952 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
961 \x{37e}\x{376}\x{371}\x{393}\x{394}
963 !\x{c0}++\x{c1}\x{c2}
968 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
973 !\x{c0}++\x{c1}\x{c2}
978 /-- POSIX interface --/
982 No match: POSIX code 17: match failed
988 /-- Some of these are silly, but they check various combinations --/
990 /[[:^alpha:][:^cntrl:]]+/8WBZ
991 ------------------------------------------------------------------
996 ------------------------------------------------------------------
1002 /[[:^cntrl:][:^alpha:]]+/8WBZ
1003 ------------------------------------------------------------------
1005 [ -~\x80-\xff\P{L}]+
1008 ------------------------------------------------------------------
1015 ------------------------------------------------------------------
1020 ------------------------------------------------------------------
1024 /[[:^alpha:]\S]+/8WBZ
1025 ------------------------------------------------------------------
1030 ------------------------------------------------------------------
1037 ------------------------------------------------------------------
1042 ------------------------------------------------------------------
1050 /\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
1051 Capturing subpattern count = 0
1052 Options: caseless utf8
1055 Subject length lower bound = 17
1056 Starting byte set: \xd0 \xd1
1057 \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}
1058 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}
1059 \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}
1060 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}
1063 Capturing subpattern count = 0
1067 Subject length lower bound = 0
1068 No set of starting bytes
1070 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
1071 ------------------------------------------------------------------
1081 ------------------------------------------------------------------
1083 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
1084 ------------------------------------------------------------------
1094 ------------------------------------------------------------------
1096 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
1097 ------------------------------------------------------------------
1107 ------------------------------------------------------------------
1109 /\p{Han}+X\p{Greek}+\x{370}/BZ8
1110 ------------------------------------------------------------------
1118 ------------------------------------------------------------------
1120 /\p{Xan}+!\p{Xan}+A/BZ
1121 ------------------------------------------------------------------
1129 ------------------------------------------------------------------
1131 /\p{Xsp}+!\p{Xsp}\t/BZ
1132 ------------------------------------------------------------------
1140 ------------------------------------------------------------------
1142 /\p{Xps}+!\p{Xps}\t/BZ
1143 ------------------------------------------------------------------
1151 ------------------------------------------------------------------
1153 /\p{Xwd}+!\p{Xwd}_/BZ
1154 ------------------------------------------------------------------
1162 ------------------------------------------------------------------
1164 /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
1165 ------------------------------------------------------------------
1177 ------------------------------------------------------------------
1179 /-- End of testinput12 --/