1 # This set of tests checks the API, internals, and non-Perl stuff for UTF
2 # support, including Unicode properties. However, tests that give different
3 # results in 8-bit, 16-bit, and 32-bit modes are excluded (see tests 10 and
6 #newline_default lf any anycrlf
8 # PCRE2 and Perl disagree about the characteristics of certain Unicode
9 # characters. For example, 061C was considered by Perl to be Arabic, though
10 # it was not listed as such in the Unicode Scripts.txt file for Unicode 8.
11 # However, it *is* in that file for Unicode 10, but when I came to re-check,
12 # Perl had changed in the meantime, with 5.026 not recognizing it as Arabic.
14 # 2066-2069 are graphic and printable according to Perl, though they are
15 # actually "isolate" control characters. That is why the following tests are
16 # here rather than in test 4.
22 /^[[:graph:]]+$/utf,ucp
35 /^[[:print:]]+$/utf,ucp
48 /^[[:^graph:]]+$/utf,ucp
49 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}
50 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}
51 \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
52 0: \x{2028}\x{2029}\x{202f}\x{2065}\x{2066}\x{2067}\x{2068}\x{2069}
54 /^[[:^print:]]+$/utf,ucp
55 \x{09}\x{1D}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
56 0: \x{09}\x{1d}\x{85}\x{61c}\x{2028}\x{2029}\x{2065}\x{2066}\x{2067}
60 # Perl does not consider U+180e to be a space character. It is true that it
61 # does not appear in the Unicode PropList.txt file as such, but in many other
62 # sources it is listed as a space, and has been treated as such in PCRE for
65 /^>[[:blank:]]*/utf,ucp
66 >\x{20}\x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
67 0: > \x{a0}\x{1680}\x{180e}\x{2000}\x{202f}\x{09}
70 A\x{85}\x{180e}\x{2005}Z
71 0: A\x{85}\x{180e}\x{2005}Z
79 /^[[:graph:]]+$/utf,ucp
84 /^[[:print:]]+$/utf,ucp
88 /^[[:^graph:]]+$/utf,ucp
89 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{61c}\x{1680}\x{180e}
90 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{61c}\x{1680}\x{180e}
92 /^[[:^print:]]+$/utf,ucp
97 # End of U+180E tests.
99 # ---------------------------------------------------------------------
102 Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
105 Failed: error 134 at offset 10: character code point value in \x{} or \o{} is too large
108 Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
111 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
114 Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
117 Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
120 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
123 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
126 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
129 Failed: error 173 at offset 9: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
139 /^\x{100}a\x{1234}/utf
143 /\x{0041}\x{2262}\x{0391}\x{002e}/IB,utf
144 ------------------------------------------------------------------
149 ------------------------------------------------------------------
150 Capturing subpattern count = 0
152 First code unit = 'A'
154 Subject length lower bound = 4
155 \x{0041}\x{2262}\x{0391}\x{002e}
159 ------------------------------------------------------------------
166 ------------------------------------------------------------------
167 Capturing subpattern count = 0
170 Subject length lower bound = 4
171 \x{212ab}\x{212ab}\x{212ab}\x{861}X
172 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X
175 ------------------------------------------------------------------
181 ------------------------------------------------------------------
182 Capturing subpattern count = 0
184 Subject length lower bound = 3
185 \x{212ab}\x{212ab}\x{212ab}\x{861}
186 0: \x{212ab}\x{212ab}\x{212ab}
189 ------------------------------------------------------------------
195 ------------------------------------------------------------------
196 Capturing subpattern count = 0
198 Overall options: anchored utf
199 Starting code units: a b
200 Subject length lower bound = 1
211 /\x{100}*(\d+|"(?1)")/utf
228 0: \x{100}\x{100}"12"
235 ------------------------------------------------------------------
240 ------------------------------------------------------------------
241 Capturing subpattern count = 0
242 May match empty string
244 Subject length lower bound = 0
247 ------------------------------------------------------------------
253 ------------------------------------------------------------------
254 Capturing subpattern count = 0
256 First code unit = 'a'
257 Subject length lower bound = 1
260 ------------------------------------------------------------------
266 ------------------------------------------------------------------
267 Capturing subpattern count = 0
269 First code unit = 'a'
271 Subject length lower bound = 2
273 /[\x{200}-\x{100}]/utf
274 Failed: error 108 at offset 15: range out of order in character class
288 ------------------------------------------------------------------
293 ------------------------------------------------------------------
294 Capturing subpattern count = 0
295 First code unit = \xff
296 Subject length lower bound = 1
301 ------------------------------------------------------------------
306 ------------------------------------------------------------------
307 Capturing subpattern count = 0
308 Subject length lower bound = 1
311 Ö # Matches without Study
317 Ö <-- Same with Study
323 Ö # Matches without Study
329 Ö <-- Same with Study
334 /[^\x{100}]abc(xyz(?1))/IB,utf
335 ------------------------------------------------------------------
345 ------------------------------------------------------------------
346 Capturing subpattern count = 1
349 Subject length lower bound = 7
351 /(\x{100}(b(?2)c))?/IB,utf
352 ------------------------------------------------------------------
365 ------------------------------------------------------------------
366 Capturing subpattern count = 2
367 May match empty string
369 Subject length lower bound = 0
371 /(\x{100}(b(?2)c)){0,2}/IB,utf
372 ------------------------------------------------------------------
396 ------------------------------------------------------------------
397 Capturing subpattern count = 2
398 May match empty string
400 Subject length lower bound = 0
402 /(\x{100}(b(?1)c))?/IB,utf
403 ------------------------------------------------------------------
416 ------------------------------------------------------------------
417 Capturing subpattern count = 2
418 May match empty string
420 Subject length lower bound = 0
422 /(\x{100}(b(?1)c)){0,2}/IB,utf
423 ------------------------------------------------------------------
447 ------------------------------------------------------------------
448 Capturing subpattern count = 2
449 May match empty string
451 Subject length lower bound = 0
463 # Use no_start_optimize because the first code unit is different in 8-bit from
466 /^\ሴ/IB,utf,no_start_optimize
467 ------------------------------------------------------------------
473 ------------------------------------------------------------------
474 Capturing subpattern count = 0
475 Compile options: no_start_optimize utf
476 Overall options: anchored no_start_optimize utf
477 Subject length lower bound = 0
479 /()()()()()()()()()()
485 Matched, but too many substrings
502 /^[\x{100}\E-\Q\E\x{150}]/B,utf
503 ------------------------------------------------------------------
509 ------------------------------------------------------------------
511 /^[\QĀ\E-\QŐ\E]/B,utf
512 ------------------------------------------------------------------
518 ------------------------------------------------------------------
520 /^abc./gmx,newline=any,utf
521 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
532 /abc.$/gmx,newline=any,utf
533 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
544 /^a\Rb/bsr=unicode,utf
565 /^a\R*b/bsr=unicode,utf
576 a\x0c\x{2028}\x{2029}b
577 0: a\x{0c}\x{2028}\x{2029}b
583 0: a\x{0a}\x{0d}\x{85}\x{0c}b
585 /^a\R+b/bsr=unicode,utf
594 a\x0c\x{2028}\x{2029}b
595 0: a\x{0c}\x{2028}\x{2029}b
601 0: a\x{0a}\x{0d}\x{85}\x{0c}b
606 /^a\R{1,3}b/bsr=unicode,utf
612 0: a\x{0a}\x{0d}\x{85}b
614 0: a\x{0d}\x{0a}\x{0d}\x{0a}b
616 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
618 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
620 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
636 /\H*\h+\V?\v{3,4}/utf
637 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
638 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
639 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
640 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
641 \x09\x20\x{a0}\x0a\x0b\x0c
642 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
644 \x09\x20\x{a0}\x0a\x0b
648 \x{3001}\x{3000}\x{2030}\x{2028}
649 0: \x{3001}\x{3000}\x{2030}\x{2028}
656 /\H*\h+\V?\v{3,4}/utf
657 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
658 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
659 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
660 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
661 \x09\x20\x{202f}\x0a\x0b\x0c
662 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
664 \x09\x{200a}\x{a0}\x{2028}\x0b
668 ------------------------------------------------------------------
670 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
673 ------------------------------------------------------------------
678 ------------------------------------------------------------------
680 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+
683 ------------------------------------------------------------------
684 >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
685 0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}
688 ------------------------------------------------------------------
690 [\x0a-\x0d\x85\x{2028}-\x{2029}]
693 ------------------------------------------------------------------
696 ------------------------------------------------------------------
698 [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
701 ------------------------------------------------------------------
704 ------------------------------------------------------------------
706 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}]
709 ------------------------------------------------------------------
715 /a\Rb/I,bsr=anycrlf,utf
716 Capturing subpattern count = 0
718 \R matches CR, LF, or CRLF
719 First code unit = 'a'
721 Subject length lower bound = 3
734 /a\Rb/I,bsr=unicode,utf
735 Capturing subpattern count = 0
737 \R matches any Unicode newline
738 First code unit = 'a'
740 Subject length lower bound = 3
752 /a\R?b/I,bsr=anycrlf,utf
753 Capturing subpattern count = 0
755 \R matches CR, LF, or CRLF
756 First code unit = 'a'
758 Subject length lower bound = 2
771 /a\R?b/I,bsr=unicode,utf
772 Capturing subpattern count = 0
774 \R matches any Unicode newline
775 First code unit = 'a'
777 Subject length lower bound = 2
789 /.*a.*=.b.*/utf,newline=any
790 QQQ\x{2029}ABCaXYZ=!bPQR
799 Failed: error 130 at offset 3: unknown POSIX class name
801 /a[^]b/utf,alt_bsux,allow_empty_class,match_unset_backref
810 /a[^]+b/utf,alt_bsux,allow_empty_class,match_unset_backref
814 0: a\x{0a}X\x{0a}X\x{1234}b
824 /X/newline=any,utf,firstline
868 Partial match: X\x{123}
870 Partial match: X\x{123}\x{123}
871 X\x{123}\x{123}\x{123}\=ps
872 Partial match: X\x{123}\x{123}\x{123}
873 X\x{123}\x{123}\x{123}\x{123}\=ps
874 Partial match: X\x{123}\x{123}\x{123}\x{123}
880 Partial match: X\x{123}
882 Partial match: X\x{123}\x{123}
883 X\x{123}\x{123}\x{123}\=ps
884 Partial match: X\x{123}\x{123}\x{123}
885 X\x{123}\x{123}\x{123}\x{123}\=ps
886 Partial match: X\x{123}\x{123}\x{123}\x{123}
892 Partial match: X\x{123}
894 Partial match: X\x{123}\x{123}
895 X\x{123}\x{123}\x{123}\=ps
896 Partial match: X\x{123}\x{123}\x{123}
897 X\x{123}\x{123}\x{123}\x{123}\=ps
898 Partial match: X\x{123}\x{123}\x{123}\x{123}
908 X\x{123}\x{123}\x{123}x\=ps
910 X\x{123}\x{123}\x{123}\x{123}x\=ps
921 X\x{123}\x{123}\x{123}x\=ps
923 X\x{123}\x{123}\x{123}\x{123}x\=ps
934 X\x{123}\x{123}\x{123}x\=ps
936 X\x{123}\x{123}\x{123}\x{123}x\=ps
1009 Partial match: Xaaaa
1015 Partial match: X\x{123}
1017 Partial match: X\x{123}\x{123}
1018 X\x{123}\x{123}\x{123}\=ps
1019 Partial match: X\x{123}\x{123}\x{123}
1020 X\x{123}\x{123}\x{123}\x{123}\=ps
1021 Partial match: X\x{123}\x{123}\x{123}\x{123}
1027 Partial match: X\x{123}
1029 Partial match: X\x{123}\x{123}
1030 X\x{123}\x{123}\x{123}\=ps
1031 Partial match: X\x{123}\x{123}\x{123}
1032 X\x{123}\x{123}\x{123}\x{123}\=ps
1033 Partial match: X\x{123}\x{123}\x{123}\x{123}
1039 Partial match: X\x{123}
1041 Partial match: X\x{123}\x{123}
1042 X\x{123}\x{123}\x{123}\=ps
1043 Partial match: X\x{123}\x{123}\x{123}
1044 X\x{123}\x{123}\x{123}\x{123}\=ps
1045 Partial match: X\x{123}\x{123}\x{123}\x{123}
1057 Partial match: Xaaaa
1069 Partial match: Xaaaa
1081 Partial match: Xaaaa
1083 /X[abc\x{123}]{2,4}b/utf
1087 Partial match: X\x{123}
1089 Partial match: X\x{123}\x{123}
1090 X\x{123}\x{123}\x{123}\=ps
1091 Partial match: X\x{123}\x{123}\x{123}
1092 X\x{123}\x{123}\x{123}\x{123}\=ps
1093 Partial match: X\x{123}\x{123}\x{123}\x{123}
1095 /X[abc\x{123}]{2,4}?b/utf
1099 Partial match: X\x{123}
1101 Partial match: X\x{123}\x{123}
1102 X\x{123}\x{123}\x{123}\=ps
1103 Partial match: X\x{123}\x{123}\x{123}
1104 X\x{123}\x{123}\x{123}\x{123}\=ps
1105 Partial match: X\x{123}\x{123}\x{123}\x{123}
1107 /X[abc\x{123}]{2,4}+b/utf
1111 Partial match: X\x{123}
1113 Partial match: X\x{123}\x{123}
1114 X\x{123}\x{123}\x{123}\=ps
1115 Partial match: X\x{123}\x{123}\x{123}
1116 X\x{123}\x{123}\x{123}\x{123}\=ps
1117 Partial match: X\x{123}\x{123}\x{123}\x{123}
1129 Partial match: Xzzzz
1141 Partial match: Xzzzz
1153 Partial match: Xzzzz
1159 Partial match: X\x{123}
1161 Partial match: X\x{123}\x{123}
1162 X\x{123}\x{123}\x{123}\=ps
1163 Partial match: X\x{123}\x{123}\x{123}
1164 X\x{123}\x{123}\x{123}\x{123}\=ps
1165 Partial match: X\x{123}\x{123}\x{123}\x{123}
1171 Partial match: X\x{123}
1173 Partial match: X\x{123}\x{123}
1174 X\x{123}\x{123}\x{123}\=ps
1175 Partial match: X\x{123}\x{123}\x{123}
1176 X\x{123}\x{123}\x{123}\x{123}\=ps
1177 Partial match: X\x{123}\x{123}\x{123}\x{123}
1183 Partial match: X\x{123}
1185 Partial match: X\x{123}\x{123}
1186 X\x{123}\x{123}\x{123}\=ps
1187 Partial match: X\x{123}\x{123}\x{123}
1188 X\x{123}\x{123}\x{123}\x{123}\=ps
1189 Partial match: X\x{123}\x{123}\x{123}\x{123}
1199 Partial match: YXYYY
1201 Partial match: YXYYYY
1211 Partial match: YXYYY
1213 Partial match: YXYYYY
1223 Partial match: YXYYY
1225 Partial match: YXYYYY
1227 /(\x{123})X\1{2,4}b/utf
1229 Partial match: \x{123}X
1231 Partial match: \x{123}X\x{123}
1232 \x{123}X\x{123}\x{123}\=ps
1233 Partial match: \x{123}X\x{123}\x{123}
1234 \x{123}X\x{123}\x{123}\x{123}\=ps
1235 Partial match: \x{123}X\x{123}\x{123}\x{123}
1236 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
1237 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1239 /(\x{123})X\1{2,4}?b/utf
1241 Partial match: \x{123}X
1243 Partial match: \x{123}X\x{123}
1244 \x{123}X\x{123}\x{123}\=ps
1245 Partial match: \x{123}X\x{123}\x{123}
1246 \x{123}X\x{123}\x{123}\x{123}\=ps
1247 Partial match: \x{123}X\x{123}\x{123}\x{123}
1248 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
1249 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1251 /(\x{123})X\1{2,4}+b/utf
1253 Partial match: \x{123}X
1255 Partial match: \x{123}X\x{123}
1256 \x{123}X\x{123}\x{123}\=ps
1257 Partial match: \x{123}X\x{123}\x{123}
1258 \x{123}X\x{123}\x{123}\x{123}\=ps
1259 Partial match: \x{123}X\x{123}\x{123}\x{123}
1260 \x{123}X\x{123}\x{123}\x{123}\x{123}\=ps
1261 Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1267 Partial match: the cat
1302 Partial match: abcde
1308 /\sxxx\s/utf,tables=2
1309 AB\x{85}xxx\x{a0}XYZ
1311 AB\x{a0}xxx\x{85}XYZ
1318 'A#хц'Bx,newline=any,utf
1319 ------------------------------------------------------------------
1324 ------------------------------------------------------------------
1327 PQ'Bx,newline=any,utf
1328 ------------------------------------------------------------------
1333 ------------------------------------------------------------------
1336 z#XX?/Bx,newline=any,utf
1337 ------------------------------------------------------------------
1343 ------------------------------------------------------------------
1346 z#х?/Bx,newline=any,utf
1347 ------------------------------------------------------------------
1353 ------------------------------------------------------------------
1355 /\g{A}xxx#bXX(?'A'123)
\r(?'A'456)/Bx,newline=any,utf
1356 ------------------------------------------------------------------
1365 ------------------------------------------------------------------
1367 /\g{A}xxx#bх(?'A'123)
\r(?'A'456)/Bx,newline=any,utf
1368 ------------------------------------------------------------------
1377 ------------------------------------------------------------------
1380 Failed: error 168 at offset 3: \c must be followed by a printable ASCII character
1388 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1389 1: \x{0d}\x{0d}\x{0a}\x{0a}
1392 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1393 1: \x{0d}\x{0d}\x{0a}\x{0a}
1402 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1406 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1410 /[^\x{1234}]+/Ii,utf
1411 Capturing subpattern count = 0
1412 Options: caseless utf
1413 Subject length lower bound = 1
1415 /[^\x{1234}]+?/Ii,utf
1416 Capturing subpattern count = 0
1417 Options: caseless utf
1418 Subject length lower bound = 1
1420 /[^\x{1234}]++/Ii,utf
1421 Capturing subpattern count = 0
1422 Options: caseless utf
1423 Subject length lower bound = 1
1425 /[^\x{1234}]{2}/Ii,utf
1426 Capturing subpattern count = 0
1427 Options: caseless utf
1428 Subject length lower bound = 2
1446 /\x{d7ff}\x{e000}/utf
1449 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
1452 Failed: error 173 at offset 7: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
1455 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
1456 0: \x{1680}\x{2000}\x{202f}\x{3000}
1457 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
1458 0: \x{200a}\x{a0}\x{2000}
1460 /[\h\x{e000}]+/B,utf
1461 ------------------------------------------------------------------
1463 [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++
1466 ------------------------------------------------------------------
1467 \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
1468 0: \x{1680}\x{2000}\x{202f}\x{3000}
1469 \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
1470 0: \x{200a}\x{a0}\x{2000}
1473 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
1474 0: \x{167f}\x{1681}\x{180d}\x{180f}
1475 \x{2000}\x{200a}\x{1fff}\x{200b}
1477 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
1478 0: \x{202e}\x{2030}\x{205e}\x{2060}
1479 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
1480 0: \x{9f}\x{a1}\x{2fff}\x{3001}
1482 /[\H\x{d7ff}]+/B,utf
1483 ------------------------------------------------------------------
1485 [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}\x{d7ff}]++
1488 ------------------------------------------------------------------
1489 \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
1490 0: \x{167f}\x{1681}\x{180d}\x{180f}
1491 \x{2000}\x{200a}\x{1fff}\x{200b}
1493 \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
1494 0: \x{202e}\x{2030}\x{205e}\x{2060}
1495 \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
1496 0: \x{9f}\x{a1}\x{2fff}\x{3001}
1499 \x{2027}\x{2030}\x{2028}\x{2029}
1501 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1502 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1504 /[\v\x{e000}]+/B,utf
1505 ------------------------------------------------------------------
1507 [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++
1510 ------------------------------------------------------------------
1511 \x{2027}\x{2030}\x{2028}\x{2029}
1513 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1514 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1517 \x{2028}\x{2029}\x{2027}\x{2030}
1519 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
1520 0: \x{09}\x{0e}\x{84}\x{86}
1522 /[\V\x{d7ff}]+/B,utf
1523 ------------------------------------------------------------------
1525 [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++
1528 ------------------------------------------------------------------
1529 \x{2028}\x{2029}\x{2027}\x{2030}
1531 \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
1532 0: \x{09}\x{0e}\x{84}\x{86}
1534 /\R+/bsr=unicode,utf
1535 \x{2027}\x{2030}\x{2028}\x{2029}
1537 \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1538 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1566 Partial match: ababa
1571 Partial match: ababab
1576 Partial match: abababa
1586 Partial match: AbaBA
1591 Partial match: aBAbaB
1596 Partial match: abaBABa
1606 Partial match: abaBA
1608 Partial match: abAbaB
1610 Partial match: abaBabA
1619 Partial match: \x{0d}
1621 /.{2,3}/utf,newline=crlf
1623 Partial match: \x{0d}
1625 Partial match: \x{0d}
1629 Partial match: \x{0d}\x{0d}
1631 0: \x{0d}\x{0d}\x{0d}
1633 Partial match: \x{0d}\x{0d}\x{0d}
1635 /.{2,3}?/utf,newline=crlf
1637 Partial match: \x{0d}
1639 Partial match: \x{0d}
1643 Partial match: \x{0d}\x{0d}
1649 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/B,utf
1650 ------------------------------------------------------------------
1659 ------------------------------------------------------------------
1661 /[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/Bi,utf
1662 ------------------------------------------------------------------
1671 ------------------------------------------------------------------
1673 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/B,utf
1674 ------------------------------------------------------------------
1687 ------------------------------------------------------------------
1689 /[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/Bi,utf
1690 ------------------------------------------------------------------
1698 /i [^\x{7fff}]{0,7}?
1703 ------------------------------------------------------------------
1705 /(?<=\x{1234}\x{1234})\bxy/I,utf
1706 Capturing subpattern count = 0
1709 First code unit = 'x'
1710 Last code unit = 'y'
1711 Subject length lower bound = 2
1718 /\u0100/B,utf,alt_bsux,allow_empty_class,match_unset_backref
1719 ------------------------------------------------------------------
1724 ------------------------------------------------------------------
1726 /[\u0100-\u0200]/B,utf,alt_bsux,allow_empty_class,match_unset_backref
1727 ------------------------------------------------------------------
1732 ------------------------------------------------------------------
1734 /\ud800/utf,alt_bsux,allow_empty_class,match_unset_backref
1735 Failed: error 173 at offset 6: disallowed Unicode code point (>= 0xd800 && <= 0xdfff)
1737 /^a+[a\x{200}]/B,utf
1738 ------------------------------------------------------------------
1745 ------------------------------------------------------------------
1749 /[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/B,utf
1750 ------------------------------------------------------------------
1752 [b-d\x{200}-\x{250}]*+
1755 [\x{200}-\x{250}]{0,8}+
1762 ------------------------------------------------------------------
1765 ------------------------------------------------------------------
1770 ------------------------------------------------------------------
1771 Capturing subpattern count = 0
1772 Subject length lower bound = 1
1775 ------------------------------------------------------------------
1780 ------------------------------------------------------------------
1781 Capturing subpattern count = 0
1782 Subject length lower bound = 1
1785 ------------------------------------------------------------------
1790 ------------------------------------------------------------------
1791 Capturing subpattern count = 0
1792 Subject length lower bound = 1
1795 ------------------------------------------------------------------
1800 ------------------------------------------------------------------
1801 Capturing subpattern count = 0
1802 Subject length lower bound = 1
1804 /[abc\p{L}\x{0660}]/IB,utf
1805 ------------------------------------------------------------------
1810 ------------------------------------------------------------------
1811 Capturing subpattern count = 0
1813 Subject length lower bound = 1
1816 ------------------------------------------------------------------
1821 ------------------------------------------------------------------
1822 Capturing subpattern count = 0
1824 Subject length lower bound = 1
1829 ------------------------------------------------------------------
1834 ------------------------------------------------------------------
1835 Capturing subpattern count = 0
1837 Subject length lower bound = 1
1851 ------------------------------------------------------------------
1856 ------------------------------------------------------------------
1859 ------------------------------------------------------------------
1864 ------------------------------------------------------------------
1872 /\p{Yi}+(\P{Yi}+)(?1)/
1878 /[\P{Yi}\P{Yi}\P{Yi}A]/
1882 /[^\P{Yi}\P{Yi}\P{Yi}A]/
1896 /(\P{Yi}{0,3}\277)*/
1898 /(\P{Yi}{0,3}?\277)*/
1900 /(\p{Yi}{0,3}+\277)*/
1903 ------------------------------------------------------------------
1909 ------------------------------------------------------------------
1912 \x{2028}\x{2028}\x{2028}
1913 0: \x{2028}\x{2028}\x{2028}
1916 ------------------------------------------------------------------
1921 ------------------------------------------------------------------
1924 ------------------------------------------------------------------
1929 ------------------------------------------------------------------
1932 ------------------------------------------------------------------
1937 ------------------------------------------------------------------
1940 ------------------------------------------------------------------
1945 ------------------------------------------------------------------
1962 \x{dfff}\=no_utf_check
1985 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
1986 0: $\x{a2}\x{a3}\x{a4}\x{a5}
2012 # These are here because Perl has problems with the negative versions of the
2013 # properties and has changed how it behaves for caseless matching.
2058 /[\x{c0}\x{391}]/i,utf
2064 # The next two are special cases where the lengths of the different cases of
2065 # the same character differ. The first went wrong with heap frame storage; the
2066 # second was broken in all cases.
2068 /^\x{023a}+?(\x{0130}+)/i,utf
2069 \x{023a}\x{2c65}\x{0130}
2070 0: \x{23a}\x{2c65}\x{130}
2073 /^\x{023a}+([^X])/i,utf
2078 /\x{c0}+\x{116}+/i,utf
2079 \x{c0}\x{e0}\x{116}\x{117}
2080 0: \x{c0}\x{e0}\x{116}\x{117}
2082 /[\x{c0}\x{116}]+/i,utf
2083 \x{c0}\x{e0}\x{116}\x{117}
2084 0: \x{c0}\x{e0}\x{116}\x{117}
2112 # The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
2113 # will match it only with UCP support, because without that it has no notion
2114 # of case for anything other than the ASCII letters.
2130 # These are PCRE's extra properties to help with Unicodizing \d etc.
2148 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2149 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
2155 \x{6ca}\x{a6c}\x{10a7}_
2159 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2160 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
2163 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2167 \x{6ca}\x{a6c}\x{10a7}_
2186 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2187 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
2193 >\x{1680}\x{2028}\x{0b}
2202 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2203 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2206 >\x{1680}\x{2028}\x{0b}
2210 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2211 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2214 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2215 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2217 /^>\p{Xsp}{2,9}?/utf
2218 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2226 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2227 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2230 >\x{1680}\x{2028}\x{0b}
2239 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2240 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2243 >\x{1680}\x{2028}\x{0b}
2247 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2248 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2251 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2252 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2254 /^>\p{Xps}{2,9}?/utf
2255 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2263 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2264 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
2284 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2285 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2288 \x{6ca}\x{a6c}\x{10a7}_
2292 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2293 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2296 A_B12\x{6ca}\x{a6c}\x{10a7}
2297 0: A_B12\x{6ca}\x{a6c}\x{10a7}
2300 \x{6ca}\x{a6c}\x{10a7}_
2321 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2322 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
2324 # A check not in UTF-8 mode
2330 # Some negative checks
2341 ------------------------------------------------------------------
2346 ------------------------------------------------------------------
2351 ------------------------------------------------------------------
2356 ------------------------------------------------------------------
2361 ------------------------------------------------------------------
2366 ------------------------------------------------------------------
2367 \x{1680}\x{6f4}\x{1680}
2371 ------------------------------------------------------------------
2376 ------------------------------------------------------------------
2381 ------------------------------------------------------------------
2386 ------------------------------------------------------------------
2391 ------------------------------------------------------------------
2396 ------------------------------------------------------------------
2401 ------------------------------------------------------------------
2406 ------------------------------------------------------------------
2411 ------------------------------------------------------------------
2416 ------------------------------------------------------------------
2421 ------------------------------------------------------------------
2426 ------------------------------------------------------------------
2427 \x{1680}\x{6f4}\x{1680}
2431 ------------------------------------------------------------------
2436 ------------------------------------------------------------------
2441 ------------------------------------------------------------------
2446 ------------------------------------------------------------------
2451 ------------------------------------------------------------------
2456 ------------------------------------------------------------------
2461 ------------------------------------------------------------------
2466 ------------------------------------------------------------------
2469 ------------------------------------------------------------------
2474 ------------------------------------------------------------------
2477 ------------------------------------------------------------------
2482 ------------------------------------------------------------------
2485 ------------------------------------------------------------------
2490 ------------------------------------------------------------------
2493 ------------------------------------------------------------------
2498 ------------------------------------------------------------------
2501 ------------------------------------------------------------------
2506 ------------------------------------------------------------------
2509 ------------------------------------------------------------------
2514 ------------------------------------------------------------------
2517 ------------------------------------------------------------------
2522 ------------------------------------------------------------------
2525 ------------------------------------------------------------------
2530 ------------------------------------------------------------------
2533 ------------------------------------------------------------------
2538 ------------------------------------------------------------------
2541 ------------------------------------------------------------------
2546 ------------------------------------------------------------------
2549 ------------------------------------------------------------------
2554 ------------------------------------------------------------------
2557 ------------------------------------------------------------------
2562 ------------------------------------------------------------------
2564 # Unicode properties for \b abd \B
2571 \x{37e}\x{376}\x{371}\x{393}\x{394}
2572 0: \x{376}\x{371}\x{393}
2573 !\x{c0}++\x{c1}\x{c2}
2578 # Without PCRE_UCP, non-ASCII always fail, even if < 256
2586 \x{37e}\x{376}\x{371}\x{393}\x{394}
2588 !\x{c0}++\x{c1}\x{c2}
2593 # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties
2598 !\x{c0}++\x{c1}\x{c2}
2603 # Some of these are silly, but they check various combinations
2605 /[[:^alpha:][:^cntrl:]]+/B,utf,ucp
2606 ------------------------------------------------------------------
2611 ------------------------------------------------------------------
2617 /[[:^cntrl:][:^alpha:]]+/B,utf,ucp
2618 ------------------------------------------------------------------
2623 ------------------------------------------------------------------
2629 /[[:alpha:]]+/B,utf,ucp
2630 ------------------------------------------------------------------
2635 ------------------------------------------------------------------
2639 /[[:^alpha:]\S]+/B,utf,ucp
2640 ------------------------------------------------------------------
2645 ------------------------------------------------------------------
2652 ------------------------------------------------------------------
2657 ------------------------------------------------------------------
2665 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/B
2666 ------------------------------------------------------------------
2676 ------------------------------------------------------------------
2678 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/B
2679 ------------------------------------------------------------------
2689 ------------------------------------------------------------------
2691 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/B
2692 ------------------------------------------------------------------
2702 ------------------------------------------------------------------
2704 /\p{Han}+X\p{Greek}+\x{370}/B,utf
2705 ------------------------------------------------------------------
2713 ------------------------------------------------------------------
2715 /\p{Xan}+!\p{Xan}+A/B
2716 ------------------------------------------------------------------
2724 ------------------------------------------------------------------
2726 /\p{Xsp}+!\p{Xsp}\t/B
2727 ------------------------------------------------------------------
2735 ------------------------------------------------------------------
2737 /\p{Xps}+!\p{Xps}\t/B
2738 ------------------------------------------------------------------
2746 ------------------------------------------------------------------
2748 /\p{Xwd}+!\p{Xwd}_/B
2749 ------------------------------------------------------------------
2757 ------------------------------------------------------------------
2759 /A+\p{N}A+\dB+\p{N}*B+\d*/B,ucp
2760 ------------------------------------------------------------------
2772 ------------------------------------------------------------------
2774 # These behaved oddly in Perl, so they are kept in this test
2776 /(\x{23a}\x{23a}\x{23a})?\1/i,utf
2778 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
2786 /(\x{23a}\x{23a}\x{23a})?\1/i,utf
2787 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2788 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2789 1: \x{23a}\x{23a}\x{23a}
2793 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2794 1: \x{23a}\x{23a}\x{23a}
2796 /(\x{23a}\x{23a}\x{23a})\1/i,utf
2798 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
2806 /(\x{23a}\x{23a}\x{23a})\1/i,utf
2807 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2808 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2809 1: \x{23a}\x{23a}\x{23a}
2813 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
2814 1: \x{23a}\x{23a}\x{23a}
2816 /(\x{2c65}\x{2c65})\1/i,utf
2817 \x{2c65}\x{2c65}\x{23a}\x{23a}
2818 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
2823 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
2826 /(\x{23a}\x{23a}\x{23a})\1Y/i,utf
2827 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
2828 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
2829 1: \x{23a}\x{23a}\x{23a}
2831 /(\x{2c65}\x{2c65})\1Y/i,utf
2832 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
2833 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
2836 # These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE
2875 0: Ste\x{301}re\x{301}o
2883 /^a\X41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2928 # These Unicode 6.1.0 scripts are not known to Perl.
2930 /\p{Chakma}\d/utf,ucp
2932 0: \x{11100}\x{1113c}
2934 /\p{Takri}\d/utf,ucp
2936 0: \x{11680}\x{116c0}
2946 Partial match: A\x{300}\x{301}
2950 Partial match: A\x{301}
2962 Partial match: A\x{300}\x{301}
2964 Partial match: A\x{300}\x{301}
2965 A\x{300}\x{301}A\x{300}\x{301}\=ps
2966 0: A\x{300}\x{301}A\x{300}\x{301}
2967 A\x{300}\x{301}A\x{300}\x{301}\=ph
2968 Partial match: A\x{300}\x{301}A\x{300}\x{301}
2975 A\x{300}\x{301}A\x{300}\x{301}\=ps
2976 0: A\x{300}\x{301}A\x{300}\x{301}
2977 A\x{300}\x{301}A\x{300}\x{301}\=ph
2978 Partial match: A\x{300}\x{301}A\x{300}\x{301}
2993 ------------------------------------------------------------------
2996 clist 03a3 03c2 03c3
3000 ------------------------------------------------------------------
3001 Capturing subpattern count = 0
3002 Options: caseless utf
3003 First code unit = 'A' (caseless)
3004 Last code unit = 'B' (caseless)
3005 Subject length lower bound = 3
3008 ------------------------------------------------------------------
3010 clist 03a3 03c2 03c3
3013 ------------------------------------------------------------------
3016 ------------------------------------------------------------------
3018 not clist 03a3 03c2 03c3
3021 ------------------------------------------------------------------
3024 ------------------------------------------------------------------
3026 clist 03a3 03c2 03c3 ++
3029 ------------------------------------------------------------------
3032 ------------------------------------------------------------------
3034 not clist 03a3 03c2 03c3 ++
3037 ------------------------------------------------------------------
3040 ------------------------------------------------------------------
3043 clist 03a3 03c2 03c3
3046 ------------------------------------------------------------------
3049 ------------------------------------------------------------------
3051 clist 03a3 03c2 03c3 ++
3055 ------------------------------------------------------------------
3057 /\x{3a3}*\x{3c2}/Bi,utf
3058 ------------------------------------------------------------------
3060 clist 03a3 03c2 03c3 *
3061 clist 03a3 03c2 03c3
3064 ------------------------------------------------------------------
3066 /\x{3a3}{3}/i,utf,aftertext
3067 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3068 0: \x{3a3}\x{3c3}\x{3c2}
3069 0+ \x{3a3}\x{3c3}\x{3c2}
3071 /\x{3a3}{2,4}/i,utf,aftertext
3072 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3073 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}
3076 /\x{3a3}{2,4}?/i,utf,aftertext
3077 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3079 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2}
3081 /\x{3a3}+./i,utf,aftertext
3082 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3083 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3086 /\x{3a3}++./i,utf,aftertext
3088 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
3091 /\x{3a3}*\x{3c2}/Bi,utf
3092 ------------------------------------------------------------------
3094 clist 03a3 03c2 03c3 *
3095 clist 03a3 03c2 03c3
3098 ------------------------------------------------------------------
3100 /[^\x{3a3}]*\x{3c2}/Bi,utf
3101 ------------------------------------------------------------------
3103 not clist 03a3 03c2 03c3 *+
3104 clist 03a3 03c2 03c3
3107 ------------------------------------------------------------------
3109 /[^a]*\x{3c2}/Bi,utf
3110 ------------------------------------------------------------------
3113 clist 03a3 03c2 03c3
3116 ------------------------------------------------------------------
3119 ------------------------------------------------------------------
3122 clist 0053 0073 017f
3126 ------------------------------------------------------------------
3153 # This property is a PCRE special
3169 $@`\x{a0}\x{1234}\x{e000}**
3170 0: $@`\x{a0}\x{1234}\x{e000}
3176 $@`\x{a0}\x{1234}\x{e000}**
3183 $@`\x{a0}\x{1234}\x{e000}**
3184 0: $@`\x{a0}\x{1234}\x{e000}*
3190 $@`\x{a0}\x{1234}\x{e000}**
3191 0: $@`\x{a0}\x{1234}\x{e000}
3197 $@`\x{a0}\x{1234}\x{e000}**
3198 0: $@`\x{a0}\x{1234}
3204 $@`\x{a0}\x{1234}\x{e000}**
3211 $@`\x{a0}\x{1234}\x{e000}**
3218 $@`\x{a0}\x{1234}\x{e000}**
3219 0: $@`\x{a0}\x{1234}\x{e000}
3250 # Some auto-possessification tests
3253 ------------------------------------------------------------------
3259 ------------------------------------------------------------------
3262 ------------------------------------------------------------------
3268 ------------------------------------------------------------------
3271 ------------------------------------------------------------------
3276 ------------------------------------------------------------------
3279 ------------------------------------------------------------------
3284 ------------------------------------------------------------------
3286 /\p{Any}+\p{Any} \p{Any}+\P{Any} \p{Any}+\p{L&} \p{Any}+\p{L} \p{Any}+\p{Lu} \p{Any}+\p{Han} \p{Any}+\p{Xan} \p{Any}+\p{Xsp} \p{Any}+\p{Xps} \p{Xwd}+\p{Any} \p{Any}+\p{Xuc}/Bx,ucp
3287 ------------------------------------------------------------------
3313 ------------------------------------------------------------------
3315 /\p{L&}+\p{Any} \p{L&}+\p{L&} \P{L&}+\p{L&} \p{L&}+\p{L} \p{L&}+\p{Lu} \p{L&}+\p{Han} \p{L&}+\p{Xan} \p{L&}+\P{Xan} \p{L&}+\p{Xsp} \p{L&}+\p{Xps} \p{Xwd}+\p{L&} \p{L&}+\p{Xuc}/Bx,ucp
3316 ------------------------------------------------------------------
3344 ------------------------------------------------------------------
3346 /\p{N}+\p{Any} \p{N}+\p{L&} \p{N}+\p{L} \p{N}+\P{L} \p{N}+\P{N} \p{N}+\p{Lu} \p{N}+\p{Han} \p{N}+\p{Xan} \p{N}+\p{Xsp} \p{N}+\p{Xps} \p{Xwd}+\p{N} \p{N}+\p{Xuc}/Bx,ucp
3347 ------------------------------------------------------------------
3375 ------------------------------------------------------------------
3377 /\p{Lu}+\p{Any} \p{Lu}+\p{L&} \p{Lu}+\p{L} \p{Lu}+\p{Lu} \P{Lu}+\p{Lu} \p{Lu}+\p{Nd} \p{Lu}+\P{Nd} \p{Lu}+\p{Han} \p{Lu}+\p{Xan} \p{Lu}+\p{Xsp} \p{Lu}+\p{Xps} \p{Xwd}+\p{Lu} \p{Lu}+\p{Xuc}/Bx,ucp
3378 ------------------------------------------------------------------
3408 ------------------------------------------------------------------
3410 /\p{Han}+\p{Lu} \p{Han}+\p{L&} \p{Han}+\p{L} \p{Han}+\p{Lu} \p{Han}+\p{Arabic} \p{Arabic}+\p{Arabic} \p{Han}+\p{Xan} \p{Han}+\p{Xsp} \p{Han}+\p{Xps} \p{Xwd}+\p{Han} \p{Han}+\p{Xuc}/Bx,ucp
3411 ------------------------------------------------------------------
3437 ------------------------------------------------------------------
3439 /\p{Xan}+\p{Any} \p{Xan}+\p{L&} \P{Xan}+\p{L&} \p{Xan}+\p{L} \p{Xan}+\p{Lu} \p{Xan}+\p{Han} \p{Xan}+\p{Xan} \p{Xan}+\P{Xan} \p{Xan}+\p{Xsp} \p{Xan}+\p{Xps} \p{Xwd}+\p{Xan} \p{Xan}+\p{Xuc}/Bx,ucp
3440 ------------------------------------------------------------------
3468 ------------------------------------------------------------------
3470 /\p{Xsp}+\p{Any} \p{Xsp}+\p{L&} \p{Xsp}+\p{L} \p{Xsp}+\p{Lu} \p{Xsp}+\p{Han} \p{Xsp}+\p{Xan} \p{Xsp}+\p{Xsp} \P{Xsp}+\p{Xsp} \p{Xsp}+\p{Xps} \p{Xwd}+\p{Xsp} \p{Xsp}+\p{Xuc}/Bx,ucp
3471 ------------------------------------------------------------------
3497 ------------------------------------------------------------------
3499 /\p{Xwd}+\p{Any} \p{Xwd}+\p{L&} \p{Xwd}+\p{L} \p{Xwd}+\p{Lu} \p{Xwd}+\p{Han} \p{Xwd}+\p{Xan} \p{Xwd}+\p{Xsp} \p{Xwd}+\p{Xps} \p{Xwd}+\p{Xwd} \p{Xwd}+\P{Xwd} \p{Xwd}+\p{Xuc}/Bx,ucp
3500 ------------------------------------------------------------------
3526 ------------------------------------------------------------------
3528 /\p{Xuc}+\p{Any} \p{Xuc}+\p{L&} \p{Xuc}+\p{L} \p{Xuc}+\p{Lu} \p{Xuc}+\p{Han} \p{Xuc}+\p{Xan} \p{Xuc}+\p{Xsp} \p{Xuc}+\p{Xps} \p{Xwd}+\p{Xuc} \p{Xuc}+\p{Xuc} \p{Xuc}+\P{Xuc}/Bx,ucp
3529 ------------------------------------------------------------------
3555 ------------------------------------------------------------------
3557 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/Bx,ucp
3558 ------------------------------------------------------------------
3568 ------------------------------------------------------------------
3570 /\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/Bx,ucp
3571 ------------------------------------------------------------------
3587 ------------------------------------------------------------------
3589 /\p{L}+\p{Xan} \p{N}+\p{Xan} \p{C}+\p{Xan} \P{L}+\p{Xan} \p{N}+\p{Xan} \P{C}+\p{Xan} \p{L}+\P{Xan}/Bx,ucp
3590 ------------------------------------------------------------------
3608 ------------------------------------------------------------------
3610 /\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/Bx,ucp
3611 ------------------------------------------------------------------
3627 ------------------------------------------------------------------
3629 /\p{Lu}+\p{Xan} \p{Nd}+\p{Xan} \p{Cs}+\p{Xan} \P{Lt}+\p{Xan} \p{Nl}+\p{Xan} \P{Cc}+\p{Xan} \p{Lt}+\P{Xan}/Bx,ucp
3630 ------------------------------------------------------------------
3648 ------------------------------------------------------------------
3650 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/Bx,ucp
3651 ------------------------------------------------------------------
3667 ------------------------------------------------------------------
3669 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/Bx,ucp
3670 ------------------------------------------------------------------
3686 ------------------------------------------------------------------
3688 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/Bx,ucp
3689 ------------------------------------------------------------------
3705 ------------------------------------------------------------------
3707 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/Bx,ucp
3708 ------------------------------------------------------------------
3720 ------------------------------------------------------------------
3722 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/Bx,ucp
3723 ------------------------------------------------------------------
3735 ------------------------------------------------------------------
3737 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/Bx,ucp
3738 ------------------------------------------------------------------
3750 ------------------------------------------------------------------
3752 # End auto-possessification tests
3754 /\w+/B,utf,ucp,auto_callout
3755 ------------------------------------------------------------------
3762 ------------------------------------------------------------------
3766 +3 ^ ^ End of pattern
3769 /[\p{N}]?+/B,no_auto_possess
3770 ------------------------------------------------------------------
3775 ------------------------------------------------------------------
3777 /[\p{L}ab]{2,3}+/B,no_auto_possess
3778 ------------------------------------------------------------------
3783 ------------------------------------------------------------------
3785 /\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/Bx
3786 ------------------------------------------------------------------
3818 ------------------------------------------------------------------
3821 ------------------------------------------------------------------
3827 ------------------------------------------------------------------
3830 ------------------------------------------------------------------
3836 ------------------------------------------------------------------
3838 /\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/Bx
3839 ------------------------------------------------------------------
3875 ------------------------------------------------------------------
3877 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B,utf,ucp
3878 ------------------------------------------------------------------
3890 ------------------------------------------------------------------
3893 ------------------------------------------------------------------
3898 ------------------------------------------------------------------
3901 ------------------------------------------------------------------
3906 ------------------------------------------------------------------
3909 ------------------------------------------------------------------
3914 ------------------------------------------------------------------
3917 Capturing subpattern count = 0
3918 Options: caseless multiline utf
3919 First code unit at start or follows newline
3920 Last code unit = 'c' (caseless)
3921 Subject length lower bound = 1
3925 /\X?abc/utf,no_start_optimize
3926 \xff\x7f\x00\x00\x03\x00\x41\xcc\x80\x41\x{300}\x61\x62\x63\x00\=no_utf_check,offset=06
3929 /\x{100}\x{200}\K\x{300}/utf,startchar
3930 \x{100}\x{200}\x{300}
3931 0: \x{100}\x{200}\x{300}
3934 # Test UTF characters in a substitution
3936 /ábc/utf,replace=XሴZ
3940 /(?<=abc)(|def)/g,utf,replace=<$0>
3941 123abcáyzabcdef789abcሴqr
3942 4: 123abc<>\x{e1}yzabc<><def>789abc<>\x{1234}qr
3945 ------------------------------------------------------------------
3947 [A-z\x{212a}\x{17f}]
3950 ------------------------------------------------------------------
3954 /(?<=\K\x{17f})/g,utf,aftertext
3955 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
3957 0+ \x{17f}\x{17f}\x{17f}\x{17f}
3959 0+ \x{17f}\x{17f}\x{17f}
3967 /(?<=\K\x{17f})/altglobal,utf,aftertext
3968 \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
3970 0+ \x{17f}\x{17f}\x{17f}\x{17f}
3972 0+ \x{17f}\x{17f}\x{17f}
3980 "\xa\xf<(.\pZ*\P{Xwd}+^\xa8\3'3yq.::?(?J:()\xd1+!~:3'(8?:)':(?'d'(?'d'^u]!.+.+\\A\Ah(n+?9){7}+\K;(?'X'u'(?'c'(?'z'(?<y>\xb::\xf0'|\xd3(\xae?'w(z\x8?P>l)\x8?P>a)'\H\R\xd1+!!~:3'(?:h$N{26875}\W+?\\=D{2}\x89(?i:Uy0\N({2\xa(\v\x85*){y*\A(()\p{L}+?\P{^Xan}'+?\xff\+pS\?|).{;y*\A(()\p{L}+?\8}\d?1(|)(/1){7}.+[Lp{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(\xbf(R))\x8a\X*?\x8a\xb\xd1^9\3*+(\xc1,\k'R'\xb4)\xcc(z\z(?J)(?'X'\x1b(\xb\xd1^9\?'3*+P{^Xan}+?\xff\+(\xc1.]k+\xb'Pm'\xb4)\xcc4f\xa7'\xd1V(?i:U,{2,2})'(?'X'))?-%--\x95$9*\4'|\xd1(\x9c''%\x94$9)#(?'R')3\x7?('P\xed7'\xa8\xb1^u\xeaw\1\0\0\(|(?1){7}.+[\p{Me}].\s\xdcC*^\x14?(?(<y>))(?<!^)$C((;*?(R*?))+(?(R)\x8a\X*?\x8a\xb\xd1^9\3*+|(\xc1,\k'R'\xb4)\xcc! z)\z(?JJ)(?'X';(\xb\xd1^9\?'3*+(\xc1.]k+\xb'Pm'\xb4))':(?'d')(?'RD'(d')|)|$)'|(?<x>\g{d});\g{x}\x11\g{d}\x81\|$((?'X'\'X'(?'W''\x92()'9'\x83*))\xba*\!?^ <){)':;\xcc4'\xd1'(?'X'28))?-%--\x95$9*\4'|\xd1((''e\x94*$9:)*#(?'R')3)\x7?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+0!~:(?)'d'E:yD!\s(?'R'\x1e;\x10:U))|'\x9g!\xb0*){)\\x16:;()\x1e\x10\x87*:(?<y>)\xd1+!~:(?)'}'\d'E:yD!\s(?'R'\x1e;\x10:U))|'))|)g!\xb0*R+9{29+)#(?'P'})*?pS\{3,}\x85,{0,}l{*UTF)(\xe{7}){3722,{9,}d{2,?|))|{)\(A?&d}}{\xa,}2}){3,}7,l{)22}(,}l:7{2,4}}29\x19+)#?'P'})*v?))\x5"
3981 Failed: error 122 at offset 1227: unmatched closing parenthesis
3983 /$(&.+[\p{Me}].\s\xdcC*?(?(<y>))(?<!^)$C((;*?(R))+(?(R)){0,6}?|){12\x8a\X*?\x8a\x0b\xd1^9\3*+(\xc1,\k'P'\xb4)\xcc(z\z(?JJ)(?'X'8};(\x0b\xd1^9\?'3*+(\xc1.]k+\x0b'Pm'\xb4\xcc4'\xd1'(?'X'))?-%--\x95$9*\4'|\xd1(''%\x95*$9)#(?'R')3\x07?('P\xed')\\x16:;()\x1e\x10*:(?<y>)\xd1+!~:(?)''(d'E:yD!\s(?'R'\x1e;\x10:U))|')g!\xb0*){29+))#(?'P'})*?/
3985 "(*UTF)(*UCP)(.UTF).+X(\V+;\^(\D|)!999}(?(?C{7(?C')\H*\S*/^\x5\xa\\xd3\x85n?(;\D*(?m).[^mH+((*UCP)(*U:F)})(?!^)(?'"
3986 Failed: error 162 at offset 113: subpattern name expected
3992 /(*:a\x{12345}b\t(d\)c)xxx/utf,alt_verbnames,mark
3995 MK: a\x{12345}b\x{09}(d)c
3997 /abcd/utf,replace=x\x{824}y\o{3333}z(\Q12\$34$$\x34\E5$$),substitute_extended
3999 1: x\x{824}y\x{6db}z(12\$34$$\x345$)
4001 /a(\x{e0}\x{101})(\x{c0}\x{102})/utf,replace=a\u$1\U$1\E$1\l$2\L$2\Eab\U\x{e0}\x{101}\L\x{d0}\x{160}\EDone,substitute_extended
4002 a\x{e0}\x{101}\x{c0}\x{102}
4003 1: a\x{c0}\x{101}\x{c0}\x{100}\x{e0}\x{101}\x{e0}\x{102}\x{e0}\x{103}ab\x{c0}\x{100}\x{f0}\x{161}Done
4005 /((?<digit>\d)|(?<letter>\p{L}))/g,substitute_extended,replace=<${digit:+digit; :not digit; }${letter:+letter:not a letter}>
4007 7: <not digit; letter><not digit; letter><digit; not a letter><digit; not a letter><not digit; letter><not digit; letter><not digit; letter>
4009 /(*UCP)(*UTF)[[:>:]]X/B
4010 ------------------------------------------------------------------
4020 ------------------------------------------------------------------
4022 /abc/utf,replace=xyz
4026 /a[[:punct:]b]/ucp,bincode
4027 ------------------------------------------------------------------
4033 ------------------------------------------------------------------
4035 /a[[:punct:]b]/utf,ucp,bincode
4036 ------------------------------------------------------------------
4042 ------------------------------------------------------------------
4044 /a[b[:punct:]]/utf,ucp,bincode
4045 ------------------------------------------------------------------
4051 ------------------------------------------------------------------
4053 /[[:^ascii:]]/utf,ucp,bincode
4054 ------------------------------------------------------------------
4059 ------------------------------------------------------------------
4061 /[[:^ascii:]\w]/utf,ucp,bincode
4062 ------------------------------------------------------------------
4064 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
4067 ------------------------------------------------------------------
4069 /[\w[:^ascii:]]/utf,ucp,bincode
4070 ------------------------------------------------------------------
4072 [\x80-\xff\p{Xwd}\x{100}-\x{10ffff}]
4075 ------------------------------------------------------------------
4077 /[^[:ascii:]\W]/utf,ucp,bincode
4078 ------------------------------------------------------------------
4083 ------------------------------------------------------------------
4094 /[[:^ascii:]a]/utf,ucp,bincode
4095 ------------------------------------------------------------------
4100 ------------------------------------------------------------------
4102 /L(?#(|++<!(2)?/B,utf,no_auto_possess,auto_callout
4103 ------------------------------------------------------------------
4110 ------------------------------------------------------------------
4112 /L(?#(|++<!(2)?/B,utf,ucp,auto_callout
4113 ------------------------------------------------------------------
4120 ------------------------------------------------------------------
4122 /(*UTF)C\x09((?<!'(?x)!*H? #\xcc\x9a[^$]/
4123 Failed: error 114 at offset 39: missing closing parenthesis
4149 # Hex uses pattern length, not zero-terminated. This tests for overrunning
4150 # the given length of a pattern.
4154 /'#('/hex,extended,utf
4157 Failed: error 125 at offset 1: lookbehind assertion is not fixed length
4160 Failed: error 125 at offset 2: lookbehind assertion is not fixed length
4162 /../utf,auto_callout
4163 \n\x{123}\x{123}\x{123}\x{123}
4164 --->\x{0a}\x{123}\x{123}\x{123}\x{123}
4168 +2 ^ ^ End of pattern
4171 # This tests processing wide characters in extended mode.
4175 # These three test a bug fix that was not clearing up after a locale setting
4176 # when the test or a subsequent one matched a wide character.
4184 /[\P{Yi}]/utf,locale=C
4189 ------------------------------------------------------------------
4199 ------------------------------------------------------------------
4201 # Horizontal and vertical space lists ignore caseless
4204 ------------------------------------------------------------------
4206 [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
4209 ------------------------------------------------------------------
4212 ------------------------------------------------------------------
4214 [^\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
4217 ------------------------------------------------------------------
4228 /\p{Nd}{0,3}[\pL](*:abc)(?C1)xxx/callout_info
4231 # ---------------------------------------------------------------------------
4233 # A bunch of tests that hit lines of code that others do not (at least when
4234 # these were created).
4236 /^[^a]{3,}?x/i,utf,no_start_optimize,no_auto_possess
4243 /^[ac]{3,}?x/i,utf,no_start_optimize,no_auto_possess
4248 /^X\X/no_start_optimize,no_auto_possess
4253 /^X\p{L&}+?/no_start_optimize,no_auto_possess
4258 /^X\p{L}+?/no_start_optimize,no_auto_possess
4263 /^X\p{Lu}+?/no_start_optimize,no_auto_possess
4268 /^X\p{Arabic}+?/no_start_optimize,no_auto_possess
4273 /^X\p{Xan}+?/ucp,no_start_optimize,no_auto_possess
4278 /^X\s+?/ucp,no_start_optimize,no_auto_possess
4285 /^X\S+?/ucp,no_start_optimize,no_auto_possess
4292 /^X\w+?/ucp,no_start_optimize,no_auto_possess
4297 /^X[^\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess
4302 /^X[\x{b5}]+?/i,utf,no_start_optimize,no_auto_possess
4307 /^X\p{Xuc}+?/utf,no_start_optimize,no_auto_possess
4312 /^X.+?Z/s,utf,no_start_optimize,no_auto_possess
4317 /^X\R+?/utf,no_start_optimize,no_auto_possess
4322 /^X\H+?/utf,no_start_optimize,no_auto_possess
4327 /^X\V+?/utf,no_start_optimize,no_auto_possess
4332 /^X\s+?/utf,no_start_optimize,no_auto_possess
4339 /^X\S+?/utf,no_start_optimize,no_auto_possess
4344 /^X\p{Any}{1,3}?Z/s,no_start_optimize,no_auto_possess
4357 /^X\p{L&}{1,3}?Z/s,no_start_optimize,no_auto_possess
4364 /^X\p{L}{1,3}?Z/s,no_start_optimize,no_auto_possess
4371 /^X\p{Lu}{1,3}?Z/s,no_start_optimize,no_auto_possess
4378 /^X\P{Han}{1,3}?Z/s,utf,no_start_optimize,no_auto_possess
4387 /^X\p{Xan}{1,3}?Z/s,no_start_optimize,no_auto_possess
4394 /^X\p{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess
4403 /^X\P{Xsp}{1,3}?Z/s,no_start_optimize,no_auto_possess
4408 /^X\p{Xwd}{1,3}?Z/s,no_start_optimize,no_auto_possess
4417 /^X\x{b5}+?Z/i,utf,no_start_optimize,no_auto_possess
4426 /^X\p{Xuc}+?Z/utf,no_start_optimize,no_auto_possess
4435 /(*CRLF)^X.+?Z/utf,no_start_optimize,no_auto_possess
4436 \= Expect partial match
4438 Partial match: XYY\x{0d}
4443 /^X.+?Z/s,utf,no_start_optimize,no_auto_possess
4450 /^X\R+?Z/utf,no_start_optimize,no_auto_possess
4463 /(*BSR_ANYCRLF)^X\R+?Z/utf,no_start_optimize,no_auto_possess
4476 /^X\H+?Z/utf,no_start_optimize,no_auto_possess
4483 /^X\h+?Z/utf,no_start_optimize,no_auto_possess
4490 /^X\V+?Z/utf,no_start_optimize,no_auto_possess
4497 /^X\v+?Z/utf,no_start_optimize,no_auto_possess
4504 /^X\D+?Z/utf,no_start_optimize,no_auto_possess
4511 /^X\d+?Z/utf,no_start_optimize,no_auto_possess
4518 /^X\S+?Z/utf,no_start_optimize,no_auto_possess
4525 /^X\s+?Z/utf,no_start_optimize,no_auto_possess
4532 /^X\W+?Z/utf,no_start_optimize,no_auto_possess
4539 /^X\p{L&}{1,3}Z/no_start_optimize,no_auto_possess
4546 /^X\p{L}{1,3}Z/no_start_optimize,no_auto_possess
4551 /^X\p{Xan}{1,3}Z/no_start_optimize,no_auto_possess
4556 /^X\P{Xsp}{1,3}Z/no_start_optimize,no_auto_possess
4561 /^X\p{Xuc}+Z/utf,no_start_optimize,no_auto_possess
4566 # ----------------------------------------------------------------------
4567 # These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option.
4569 /\x{d800}/B,utf,bad_escape_is_literal
4570 ------------------------------------------------------------------
4575 ------------------------------------------------------------------
4577 /\ud800/B,utf,alt_bsux,bad_escape_is_literal
4578 ------------------------------------------------------------------
4583 ------------------------------------------------------------------
4585 # ----------------------------------------------------------------------
4587 /Aሴ+B/literal,utf,no_utf_check
4591 # These are here because I upgraded to Unicode 10.0.0 before Perl did, so it
4592 # doesn't recognize all these scripts. In time these three tests can be moved
4595 /^(\p{Adlam}+)(\p{Bhaiksuki}+)(\p{Marchen}+)(\p{Newa}+)(\p{Osage}+)
4596 (\p{Tangut}+)(\p{Masaram_Gondi}+)(\p{Nushu}+)(\p{Soyombo}+)
4597 (\p{Zanabazar_Square}+)/x,utf
4598 \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47}
4599 0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47}
4600 1: \x{1e900}\x{1e924}\x{1e953}
4601 2: \x{11c00}\x{11c2d}\x{11c3e}
4602 3: \x{11c70}\x{11c77}\x{11cab}
4603 4: \x{11400}\x{1142f}\x{11455}
4604 5: \x{104b0}\x{104d8}\x{104fb}
4605 6: \x{16fe0}\x{18800}\x{18af2}
4606 7: \x{11d00}\x{11d3a}\x{11d59}
4607 8: \x{16fe1}\x{1b170}\x{1b2fb}
4608 9: \x{11a50}\x{11a58}\x{11aa2}
4609 10: \x{11a00}\x{11a07}\x{11a47}
4611 /^\x{1E900}\x{104B0}/i,utf
4613 0: \x{1e900}\x{104b0}
4615 0: \x{1e922}\x{104d8}
4617 /^(?:(\X)(?C))+$/utf
4618 \x{1E900}\x{1E924}\x{1E953}\x{11C00}\x{11C2D}\x{11C3E}\x{11C70}\x{11C77}\x{11CAB}\x{11400}\x{1142F}\x{11455}\x{104B0}\x{104D8}\x{104FB}\x{16FE0}\x{18800}\x{18AF2}\x{11D00}\x{11D3A}\x{11D59}\x{16FE1}\x{1B170}\x{1B2FB}\x{11A50}\x{11A58}\x{11AA2}\x{11A00}\x{11A07}\x{11A47}\=callout_capture,callout_no_where
4619 Callout 0: last capture = 1
4621 Callout 0: last capture = 1
4623 Callout 0: last capture = 1
4625 Callout 0: last capture = 1
4627 Callout 0: last capture = 1
4628 1: \x{11c2d}\x{11c3e}
4629 Callout 0: last capture = 1
4631 Callout 0: last capture = 1
4632 1: \x{11c77}\x{11cab}
4633 Callout 0: last capture = 1
4635 Callout 0: last capture = 1
4637 Callout 0: last capture = 1
4639 Callout 0: last capture = 1
4641 Callout 0: last capture = 1
4643 Callout 0: last capture = 1
4645 Callout 0: last capture = 1
4647 Callout 0: last capture = 1
4649 Callout 0: last capture = 1
4651 Callout 0: last capture = 1
4652 1: \x{11d00}\x{11d3a}
4653 Callout 0: last capture = 1
4655 Callout 0: last capture = 1
4657 Callout 0: last capture = 1
4659 Callout 0: last capture = 1
4661 Callout 0: last capture = 1
4662 1: \x{11a50}\x{11a58}
4663 Callout 0: last capture = 1
4665 Callout 0: last capture = 1
4666 1: \x{11a00}\x{11a07}\x{11a47}
4667 0: \x{1e900}\x{1e924}\x{1e953}\x{11c00}\x{11c2d}\x{11c3e}\x{11c70}\x{11c77}\x{11cab}\x{11400}\x{1142f}\x{11455}\x{104b0}\x{104d8}\x{104fb}\x{16fe0}\x{18800}\x{18af2}\x{11d00}\x{11d3a}\x{11d59}\x{16fe1}\x{1b170}\x{1b2fb}\x{11a50}\x{11a58}\x{11aa2}\x{11a00}\x{11a07}\x{11a47}
4668 1: \x{11a00}\x{11a07}\x{11a47}
4670 # Similarly for Unicode 11.0.0
4672 /^(\p{Dogra}+)(\p{Gunjala_Gondi}+)(\p{Hanifi_Rohingya}+)(\p{Makasar}+)
4673 (\p{Medefaidrin}+)(\p{Old_Sogdian}+)(\p{Sogdian}+)/x,utf
4674 \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30}
4675 0: \x{11800}\x{11da9}\x{10d27}\x{11ee0}\x{16e48}\x{10f27}\x{10f30}
4684 # These two are here because of differences from Perl.
4689 \x{261d}\x{261d}B Extended_Pictographic Extended_Pictographic
4691 \x{261D}\x{1F3FB}B Extended_Pictographic Extend
4692 0: \x{261d}\x{1f3fb}
4693 \x{1F1E6}\x{1F1E7}B RegionalIndicator RegionalIndicator
4694 0: \x{1f1e6}\x{1f1e7}
4695 \x{261D}\x{1F3FB}\x{261d}B Extended_Pictographic Extend E-P
4696 0: \x{261d}\x{1f3fb}\x{261d}
4697 \x{261D}\x{1F3FB}\x{200d}\x{261d}B Extended_Pictographic Extend ZWJ E-P
4698 0: \x{261d}\x{1f3fb}\x{200d}\x{261d}
4700 # Regional indicators
4702 /^(\X)(\X)/utf,aftertext
4703 \x{1F1E6}\x{1F1E7}\x{1F1E7}B
4704 0: \x{1f1e6}\x{1f1e7}\x{1f1e7}
4706 1: \x{1f1e6}\x{1f1e7}
4708 \x{1F1E6}\x{1F1E7}\x{1F1E7}\x{1F1E6}B
4709 0: \x{1f1e6}\x{1f1e7}\x{1f1e7}\x{1f1e6}
4711 1: \x{1f1e6}\x{1f1e7}
4712 2: \x{1f1e7}\x{1f1e6}
4714 # More differences from Perl
4754 Failed: error 193 at offset 2: \N{U+dddd} is supported only in Unicode (UTF) mode
4757 Failed: error 178 at offset 5: digits missing in \x{} or \o{} or \N{U+}
4760 Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
4762 # This tests the non-UTF Unicode NEL pattern whitespace character, only
4763 # recognized by PCRE2 with /x when there is Unicode support.
4770 # This tests Unicode Pattern White Space characters in verb names when they
4771 # are being processed with PCRE2_EXTENDED. Note: there are UTF-8 characters
4772 # with code points greater than 255 between A, B, and C in the pattern.
4774 /(*: AB
C)abc/x,utf,mark,alt_verbnames