1 /-- This set of tests check Unicode property support with the DFA matching
2 functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest
14 A\x{300}\x{301}\x{302}BC
20 A\x{300}B\x{300}\x{301}C
21 A\x{300}\x{301}\x{302}BC
37 abcdA\x{300}\x{301}\x{302}
38 A\x{300}\x{301}\x{302}
39 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
47 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
55 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
61 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
68 A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
86 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
87 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
90 A\x{300}\x{301}\x{302}X
91 A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
93 /^\pC\pL\pM\pN\pP\pS\pZ</8
94 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
214 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
215 \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
216 \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
299 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
347 \x{660}\x{661}\x{662}ABC
350 \x{660}\x{661}\x{662}ABC
353 \x{660}\x{661}\x{662}ABC
356 \x{660}\x{661}\x{662}ABC
359 \x{660}\x{661}\x{662}ABC
362 \x{660}\x{661}\x{662}ABC
365 \x{660}\x{661}\x{662}ABC
368 \x{660}\x{661}\x{662}ABC
371 \x{660}\x{661}\x{662}ABC
374 \x{660}\x{661}\x{662}ABC
377 \x{660}\x{661}\x{662}ABC
380 \x{660}\x{661}\x{662}ABC
383 \x{660}\x{661}\x{662}ABC
387 \x{660}\x{661}\x{662}ABC
437 11111111111111111111111111111111111111111111111111111111111111111111111
438 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
441 11111111111111111111111111111111111111111111111111111111111111111111111
442 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
445 11111111111111111111111111111111111111111111111111111111111111111111111
446 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
449 11111111111111111111111111111111111111111111111111111111111111111111111
450 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
453 11111111111111111111111111111111111111111111111111111111111111111111111
454 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
496 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8
497 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
499 a\x{391}\x{10427}\x{ff3a}\x{1fb0}
500 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
501 A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
502 A\x{391}\x{10427}\x{ff5a}\x{1fb0}
503 A\x{391}\x{10427}\x{ff3a}\x{1fb8}
505 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i
506 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
507 a\x{391}\x{10427}\x{ff3a}\x{1fb0}
508 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
509 A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
510 A\x{391}\x{10427}\x{ff5a}\x{1fb0}
511 A\x{391}\x{10427}\x{ff3a}\x{1fb8}
514 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
517 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
520 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
522 /[\x{391}\x{ff3a}]/8i
532 /[\x{105}-\x{109}]/8i
560 A\x{300}\x{301}\x{302}BC
570 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
571 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
574 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
575 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
578 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
579 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
582 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
583 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
587 A\x{300}\x{301}\x{302}
590 A\x{300}\x{301}B\x{300}X
591 A\x{300}\x{301}B\x{300}C\x{300}\x{301}
592 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
593 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
596 A\x{300}\x{301}B\x{300}X
597 A\x{300}\x{301}B\x{300}C\x{300}\x{301}
598 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
599 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
614 \x{2e81}\x{3007}\x{2f804}\x{31a0}
741 \x{1234}\n\r\x{3456}xyz
745 \x{1234}\n\r\x{3456}xyz
750 \x{1234}\n\r\x{3456}xyz
830 /^\x{023a}+?(\x{0130}+)/8i
831 \x{023a}\x{2c65}\x{0130}
837 \x{c0}\x{e0}\x{116}\x{117}
840 \x{c0}\x{e0}\x{116}\x{117}
842 /Check property support in non-UTF-8 mode/
848 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8
849 \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
870 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
875 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
878 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
890 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
895 >\x{1680}\x{2028}\x{0b}
900 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
903 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
906 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
912 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
915 >\x{1680}\x{2028}\x{0b}
921 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
924 >\x{1680}\x{2028}\x{0b}
927 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
930 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
933 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
939 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
952 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
955 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
958 A_12\x{6ca}\x{a6c}\x{10a7}
971 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
973 /-- Unicode properties for \b abd \B --/
978 \x{37e}\x{376}\x{371}\x{393}\x{394}
979 !\x{c0}++\x{c1}\x{c2}
982 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
988 \x{37e}\x{376}\x{371}\x{393}\x{394}
989 !\x{c0}++\x{c1}\x{c2}
992 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
996 !\x{c0}++\x{c1}\x{c2}
999 /-- Caseless single negated characters > 127 need UCP support --/
1022 A\x{300}\x{301}A\x{300}\x{301}\P
1023 A\x{300}\x{301}A\x{300}\x{301}\P\P
1028 A\x{300}\x{301}A\x{300}\x{301}\P
1029 A\x{300}\x{301}A\x{300}\x{301}\P\P
1039 /-- These are tests for extended grapheme clusters --/
1048 *These match up to the roman letters
1050 \x{1111}\x{1111}\x{1169}L,L,V
1051 \x{1111}\x{ae4c}L, LV
1052 \x{1111}\x{ad89}L, LVT
1053 \x{1111}\x{ae4c}\x{1169}L, LV, V
1054 \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
1055 \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
1056 \x{1111}\x{ad89}\x{11fe}L, LVT, T
1057 \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
1058 \x{ad89}\x{11fe}\x{11fe}LVT, T, T
1059 *These match just the first codepoint (invalid sequence)
1060 \x{1111}\x{11fe}L, T
1061 \x{ae4c}\x{1111}LV, L
1062 \x{ae4c}\x{ae4c}LV, LV
1063 \x{ae4c}\x{ad89}LV, LVT
1064 \x{1169}\x{1111}V, L
1065 \x{1169}\x{ae4c}V, LV
1066 \x{1169}\x{ad89}V, LVT
1067 \x{ad89}\x{1111}LVT, L
1068 \x{ad89}\x{1169}LVT, V
1069 \x{ad89}\x{ae4c}LVT, LV
1070 \x{ad89}\x{ad89}LVT, LVT
1071 \x{11fe}\x{1111}T, L
1072 \x{11fe}\x{1169}T, V
1073 \x{11fe}\x{ae4c}T, LV
1074 \x{11fe}\x{ad89}T, LVT
1075 *Test extend and spacing mark
1076 \x{1111}\x{ae4c}\x{0711}L, LV, extend
1077 \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
1078 \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
1079 *Test CR, LF, and control
1080 \x0d\x{0711}CR, extend
1081 \x0d\x{1b04}CR, spacingmark
1082 \x0a\x{0711}LF, extend
1083 \x0a\x{1b04}LF, spacingmark
1084 \x0b\x{0711}Control, extend
1085 \x09\x{1b04}Control, spacingmark
1086 *There are no Prepend characters, so we can't test Prepend, CR
1089 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1092 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1093 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1094 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1097 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1098 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1099 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1121 /-- Perl matches these --/
1124 \x{00b5}\x{039c}\x{03bc}
1127 \x{00b5}\x{039c}\x{03bc}
1130 \x{00b5}\x{039c}\x{03bc}
1134 \x{00c5}\x{00e5}\x{212b}
1137 \x{00c5}\x{00e5}\x{212b}
1140 \x{00c5}\x{00e5}\x{212b}
1144 \x{01c4}\x{01c5}\x{01c6}
1147 \x{01c4}\x{01c5}\x{01c6}
1150 \x{01c4}\x{01c5}\x{01c6}
1154 \x{01c7}\x{01c8}\x{01c9}
1157 \x{01c7}\x{01c8}\x{01c9}
1160 \x{01c7}\x{01c8}\x{01c9}
1164 \x{01ca}\x{01cb}\x{01cc}
1167 \x{01ca}\x{01cb}\x{01cc}
1170 \x{01ca}\x{01cb}\x{01cc}
1174 \x{01f1}\x{01f2}\x{01f3}
1177 \x{01f1}\x{01f2}\x{01f3}
1180 \x{01f1}\x{01f2}\x{01f3}
1184 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1187 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1190 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1193 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1197 \x{0392}\x{03b2}\x{03d0}
1200 \x{0392}\x{03b2}\x{03d0}
1203 \x{0392}\x{03b2}\x{03d0}
1207 \x{0395}\x{03b5}\x{03f5}
1210 \x{0395}\x{03b5}\x{03f5}
1213 \x{0395}\x{03b5}\x{03f5}
1217 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1220 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1223 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1226 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1230 \x{039a}\x{03ba}\x{03f0}
1233 \x{039a}\x{03ba}\x{03f0}
1236 \x{039a}\x{03ba}\x{03f0}
1240 \x{03a0}\x{03c0}\x{03d6}
1243 \x{03a0}\x{03c0}\x{03d6}
1246 \x{03a0}\x{03c0}\x{03d6}
1250 \x{03a1}\x{03c1}\x{03f1}
1253 \x{03a1}\x{03c1}\x{03f1}
1256 \x{03a1}\x{03c1}\x{03f1}
1260 \x{03A3}\x{03C2}\x{03C3}
1263 \x{03A3}\x{03C2}\x{03C3}
1266 \x{03A3}\x{03C2}\x{03C3}
1270 \x{03a6}\x{03c6}\x{03d5}
1273 \x{03a6}\x{03c6}\x{03d5}
1276 \x{03a6}\x{03c6}\x{03d5}
1280 \x{03c9}\x{03a9}\x{2126}
1283 \x{03c9}\x{03a9}\x{2126}
1286 \x{03c9}\x{03a9}\x{2126}
1290 \x{1e60}\x{1e61}\x{1e9b}
1293 \x{1e60}\x{1e61}\x{1e9b}
1296 \x{1e60}\x{1e61}\x{1e9b}
1313 \x{004b}\x{006b}\x{212a}
1316 \x{004b}\x{006b}\x{212a}
1319 \x{004b}\x{006b}\x{212a}
1323 \x{0053}\x{0073}\x{017f}
1326 \x{0053}\x{0073}\x{017f}
1329 \x{0053}\x{0073}\x{017f}
1356 $@`\x{a0}\x{1234}\x{e000}**
1361 $@`\x{a0}\x{1234}\x{e000}**
1366 $@`\x{a0}\x{1234}\x{e000}**
1371 $@`\x{a0}\x{1234}\x{e000}**
1376 $@`\x{a0}\x{1234}\x{e000}**
1381 $@`\x{a0}\x{1234}\x{e000}**
1386 $@`\x{a0}\x{1234}\x{e000}**
1391 $@`\x{a0}\x{1234}\x{e000}**
1413 A\x{85}\x{180e}\x{2005}Z
1417 A\x{85}\x{180e}\x{2005}Z
1419 /-- End of testinput10 --/