1 /-- These tests for Unicode property support test PCRE's API and show some of
2 the compiled code. They are not Perl-compatible. --/
12 /[abc\p{L}\x{0660}]/8DZ
24 /[\x{105}-\x{109}]/8iDZ
61 /\p{Yi}+(\P{Yi}+)(?1)/
67 /[\P{Yi}\P{Yi}\P{Yi}A]/
71 /[^\P{Yi}\P{Yi}\P{Yi}A]/
93 \x{2028}\x{2028}\x{2028}
128 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
144 /-- These are here rather than in test 6 because Perl has problems with
145 the negative versions of the properties and behaves has changed how
146 it behaves for caseless matching. --/
181 /-- The next two are special cases where the lengths of the different cases of
182 the same character differ. The first went wrong with heap frame storage; the
183 second was broken in all cases. --/
185 /^\x{023a}+?(\x{0130}+)/8i
186 \x{023a}\x{2c65}\x{0130}
192 \x{c0}\x{e0}\x{116}\x{117}
195 \x{c0}\x{e0}\x{116}\x{117}
211 /-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
212 will match it only with UCP support, because without that it has no notion
213 of case for anything other than the ASCII letters. --/
223 /-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
235 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
240 \x{6ca}\x{a6c}\x{10a7}_
243 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
246 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
249 \x{6ca}\x{a6c}\x{10a7}_
261 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
266 >\x{1680}\x{2028}\x{0b}
272 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
275 >\x{1680}\x{2028}\x{0b}
278 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
281 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
284 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
290 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
293 >\x{1680}\x{2028}\x{0b}
299 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
302 >\x{1680}\x{2028}\x{0b}
305 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
308 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
311 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
317 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
330 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
333 \x{6ca}\x{a6c}\x{10a7}_
336 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
339 A_B12\x{6ca}\x{a6c}\x{10a7}
342 \x{6ca}\x{a6c}\x{10a7}_
355 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
357 /-- A check not in UTF-8 mode --/
362 /-- Some negative checks --/
377 \x{1680}\x{6f4}\x{1680}
395 \x{1680}\x{6f4}\x{1680}
432 /-- Unicode properties for \b abd \B --/
437 \x{37e}\x{376}\x{371}\x{393}\x{394}
438 !\x{c0}++\x{c1}\x{c2}
441 /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
447 \x{37e}\x{376}\x{371}\x{393}\x{394}
448 !\x{c0}++\x{c1}\x{c2}
451 /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
455 !\x{c0}++\x{c1}\x{c2}
458 /-- Some of these are silly, but they check various combinations --/
460 /[[:^alpha:][:^cntrl:]]+/8WBZ
464 /[[:^cntrl:][:^alpha:]]+/8WBZ
471 /[[:^alpha:]\S]+/8WBZ
480 /\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
482 /\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
484 /\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
486 /\p{Han}+X\p{Greek}+\x{370}/BZ8
488 /\p{Xan}+!\p{Xan}+A/BZ
490 /\p{Xsp}+!\p{Xsp}\t/BZ
492 /\p{Xps}+!\p{Xps}\t/BZ
494 /\p{Xwd}+!\p{Xwd}_/BZ
496 /A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
498 /-- These behaved oddly in Perl, so they are kept in this test --/
500 /(\x{23a}\x{23a}\x{23a})?\1/8i
501 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
506 /(\x{23a}\x{23a}\x{23a})?\1/8i
507 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
512 /(\x{23a}\x{23a}\x{23a})\1/8i
513 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
518 /(\x{23a}\x{23a}\x{23a})\1/8i
519 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
524 /(\x{2c65}\x{2c65})\1/8i
525 \x{2c65}\x{2c65}\x{23a}\x{23a}
530 /(\x{23a}\x{23a}\x{23a})\1Y/8i
531 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
533 /(\x{2c65}\x{2c65})\1Y/8i
534 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
538 /-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
601 /-- These Unicode 6.1.0 scripts are not known to Perl. --/
624 A\x{300}\x{301}A\x{300}\x{301}\P
625 A\x{300}\x{301}A\x{300}\x{301}\P\P
630 A\x{300}\x{301}A\x{300}\x{301}\P
631 A\x{300}\x{301}A\x{300}\x{301}\P\P
657 /\x{3a3}*\x{3c2}/8iBZ
660 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
663 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
666 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
669 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
673 \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
675 /\x{3a3}*\x{3c2}/8iBZ
677 /[^\x{3a3}]*\x{3c2}/8iBZ
697 /-- This property is a PCRE special --/
708 $@`\x{a0}\x{1234}\x{e000}**
713 $@`\x{a0}\x{1234}\x{e000}**
718 $@`\x{a0}\x{1234}\x{e000}**
723 $@`\x{a0}\x{1234}\x{e000}**
728 $@`\x{a0}\x{1234}\x{e000}**
733 $@`\x{a0}\x{1234}\x{e000}**
738 $@`\x{a0}\x{1234}\x{e000}**
743 $@`\x{a0}\x{1234}\x{e000}**
763 /-- Some auto-possessification tests --/
773 /\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}/BWZx
775 /\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}/BWZx
777 /\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}/BWZx
779 /\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}/BWZx
781 /\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}/BWZx
783 /\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}/BWZx
785 /\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}/BWZx
787 /\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}/BWZx
789 /\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}/BWZx
791 /\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx
793 /\p{Xan}+\p{L} \p{Xan}+\p{N} \p{Xan}+\p{C} \p{Xan}+\P{L} \P{Xan}+\p{N} \p{Xan}+\P{C}/BWZx
795 /\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}/BWZx
797 /\p{Xan}+\p{Lu} \p{Xan}+\p{Nd} \p{Xan}+\p{Cc} \p{Xan}+\P{Ll} \P{Xan}+\p{No} \p{Xan}+\P{Cf}/BWZx
799 /\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}/BWZx
801 /\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx
803 /\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx
805 /\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx
807 /\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx
809 /\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx
811 /\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx
813 /-- End auto-possessification tests --/
822 /\D+\X \d+\X \S+\X \s+\X \W+\X \w+\X \C+\X \R+\X \H+\X \h+\X \V+\X \v+\X a+\X \n+\X .+\X/BZx
828 /\X+\D \X+\d \X+\S \X+\s \X+\W \X+\w \X+. \X+\C \X+\R \X+\H \X+\h \X+\V \X+\v \X+\X \X+\Z \X+\z \X+$/BZx
830 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ
838 /-- End of testinput7 --/