blob: 13cc0d0a2b434fa68e77c1ac368d9efb80ddfdb1 [file] [log] [blame]
Tristan Matthews04616462013-11-14 16:09:34 -05001/-- These tests for Unicode property support test PCRE's API and show some of
2 the compiled code. They are not Perl-compatible. --/
3
4/[\p{L}]/DZ
5------------------------------------------------------------------
6 Bra
7 [\p{L}]
8 Ket
9 End
10------------------------------------------------------------------
11Capturing subpattern count = 0
12No options
13No first char
14No need char
15
16/[\p{^L}]/DZ
17------------------------------------------------------------------
18 Bra
19 [\P{L}]
20 Ket
21 End
22------------------------------------------------------------------
23Capturing subpattern count = 0
24No options
25No first char
26No need char
27
28/[\P{L}]/DZ
29------------------------------------------------------------------
30 Bra
31 [\P{L}]
32 Ket
33 End
34------------------------------------------------------------------
35Capturing subpattern count = 0
36No options
37No first char
38No need char
39
40/[\P{^L}]/DZ
41------------------------------------------------------------------
42 Bra
43 [\p{L}]
44 Ket
45 End
46------------------------------------------------------------------
47Capturing subpattern count = 0
48No options
49No first char
50No need char
51
52/[abc\p{L}\x{0660}]/8DZ
53------------------------------------------------------------------
54 Bra
55 [a-c\p{L}\x{660}]
56 Ket
57 End
58------------------------------------------------------------------
59Capturing subpattern count = 0
60Options: utf8
61No first char
62No need char
63
64/[\p{Nd}]/8DZ
65------------------------------------------------------------------
66 Bra
67 [\p{Nd}]
68 Ket
69 End
70------------------------------------------------------------------
71Capturing subpattern count = 0
72Options: utf8
73No first char
74No need char
75 1234
76 0: 1
77
78/[\p{Nd}+-]+/8DZ
79------------------------------------------------------------------
80 Bra
81 [+\-\p{Nd}]+
82 Ket
83 End
84------------------------------------------------------------------
85Capturing subpattern count = 0
86Options: utf8
87No first char
88No need char
89 1234
90 0: 1234
91 12-34
92 0: 12-34
93 12+\x{661}-34
94 0: 12+\x{661}-34
95 ** Failers
96No match
97 abcd
98No match
99
100/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ
101------------------------------------------------------------------
102 Bra
103 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
104 Ket
105 End
106------------------------------------------------------------------
107Capturing subpattern count = 0
108Options: caseless utf8
109First char = 'A' (caseless)
110No need char
111
112/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ
113------------------------------------------------------------------
114 Bra
115 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
116 Ket
117 End
118------------------------------------------------------------------
119Capturing subpattern count = 0
120Options: utf8
121First char = 'A'
122Need char = 176
123
124/AB\x{1fb0}/8DZ
125------------------------------------------------------------------
126 Bra
127 AB\x{1fb0}
128 Ket
129 End
130------------------------------------------------------------------
131Capturing subpattern count = 0
132Options: utf8
133First char = 'A'
134Need char = 176
135
136/AB\x{1fb0}/8DZi
137------------------------------------------------------------------
138 Bra
139 /i AB\x{1fb0}
140 Ket
141 End
142------------------------------------------------------------------
143Capturing subpattern count = 0
144Options: caseless utf8
145First char = 'A' (caseless)
146Need char = 'B' (caseless)
147
148/[\x{105}-\x{109}]/8iDZ
149------------------------------------------------------------------
150 Bra
151 [\x{104}-\x{109}]
152 Ket
153 End
154------------------------------------------------------------------
155Capturing subpattern count = 0
156Options: caseless utf8
157No first char
158No need char
159 \x{104}
160 0: \x{104}
161 \x{105}
162 0: \x{105}
163 \x{109}
164 0: \x{109}
165 ** Failers
166No match
167 \x{100}
168No match
169 \x{10a}
170No match
171
172/[z-\x{100}]/8iDZ
173------------------------------------------------------------------
174 Bra
175 [Z\x{39c}\x{178}z-\x{101}]
176 Ket
177 End
178------------------------------------------------------------------
179Capturing subpattern count = 0
180Options: caseless utf8
181No first char
182No need char
183 Z
184 0: Z
185 z
186 0: z
187 \x{39c}
188 0: \x{39c}
189 \x{178}
190 0: \x{178}
191 |
192 0: |
193 \x{80}
194 0: \x{80}
195 \x{ff}
196 0: \x{ff}
197 \x{100}
198 0: \x{100}
199 \x{101}
200 0: \x{101}
201 ** Failers
202No match
203 \x{102}
204No match
205 Y
206No match
207 y
208No match
209
210/[z-\x{100}]/8DZi
211------------------------------------------------------------------
212 Bra
213 [Z\x{39c}\x{178}z-\x{101}]
214 Ket
215 End
216------------------------------------------------------------------
217Capturing subpattern count = 0
218Options: caseless utf8
219No first char
220No need char
221
222/(?:[\PPa*]*){8,}/
223
224/[\P{Any}]/BZ
225------------------------------------------------------------------
226 Bra
227 [\P{Any}]
228 Ket
229 End
230------------------------------------------------------------------
231
232/[\P{Any}\E]/BZ
233------------------------------------------------------------------
234 Bra
235 [\P{Any}]
236 Ket
237 End
238------------------------------------------------------------------
239
240/(\P{Yi}+\277)/
241
242/(\P{Yi}+\277)?/
243
244/(?<=\P{Yi}{3}A)X/
245
246/\p{Yi}+(\P{Yi}+)(?1)/
247
248/(\P{Yi}{2}\277)?/
249
250/[\P{Yi}A]/
251
252/[\P{Yi}\P{Yi}\P{Yi}A]/
253
254/[^\P{Yi}A]/
255
256/[^\P{Yi}\P{Yi}\P{Yi}A]/
257
258/(\P{Yi}*\277)*/
259
260/(\P{Yi}*?\277)*/
261
262/(\p{Yi}*+\277)*/
263
264/(\P{Yi}?\277)*/
265
266/(\P{Yi}??\277)*/
267
268/(\p{Yi}?+\277)*/
269
270/(\P{Yi}{0,3}\277)*/
271
272/(\P{Yi}{0,3}?\277)*/
273
274/(\p{Yi}{0,3}+\277)*/
275
276/\p{Zl}{2,3}+/8BZ
277------------------------------------------------------------------
278 Bra
279 prop Zl {2}
280 prop Zl ?+
281 Ket
282 End
283------------------------------------------------------------------
284 \xe2\x80\xa8\xe2\x80\xa8
285 0: \x{2028}\x{2028}
286 \x{2028}\x{2028}\x{2028}
287 0: \x{2028}\x{2028}\x{2028}
288
289/\p{Zl}/8BZ
290------------------------------------------------------------------
291 Bra
292 prop Zl
293 Ket
294 End
295------------------------------------------------------------------
296
297/\p{Lu}{3}+/8BZ
298------------------------------------------------------------------
299 Bra
300 prop Lu {3}
301 Ket
302 End
303------------------------------------------------------------------
304
305/\pL{2}+/8BZ
306------------------------------------------------------------------
307 Bra
308 prop L {2}
309 Ket
310 End
311------------------------------------------------------------------
312
313/\p{Cc}{2}+/8BZ
314------------------------------------------------------------------
315 Bra
316 prop Cc {2}
317 Ket
318 End
319------------------------------------------------------------------
320
321/^\p{Cs}/8
322 \?\x{dfff}
323 0: \x{dfff}
324 ** Failers
325No match
326 \x{09f}
327No match
328
329/^\p{Sc}+/8
330 $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
331 0: $\x{a2}\x{a3}\x{a4}\x{a5}
332 \x{9f2}
333 0: \x{9f2}
334 ** Failers
335No match
336 X
337No match
338 \x{2c2}
339No match
340
341/^\p{Zs}/8
342 \ \
343 0:
344 \x{a0}
345 0: \x{a0}
346 \x{1680}
347 0: \x{1680}
348 \x{180e}
349 0: \x{180e}
350 \x{2000}
351 0: \x{2000}
352 \x{2001}
353 0: \x{2001}
354 ** Failers
355No match
356 \x{2028}
357No match
358 \x{200d}
359No match
360
361/-- These four are here rather than in test 6 because Perl has problems with
362 the negative versions of the properties. --/
363
364/\p{^Lu}/8i
365 1234
366 0: 1
367 ** Failers
368 0: *
369 ABC
370No match
371
372/\P{Lu}/8i
373 1234
374 0: 1
375 ** Failers
376 0: *
377 ABC
378No match
379
380/\p{Ll}/8i
381 a
382 0: a
383 Az
384 0: z
385 ** Failers
386 0: a
387 ABC
388No match
389
390/\p{Lu}/8i
391 A
392 0: A
393 a\x{10a0}B
394 0: \x{10a0}
395 ** Failers
396 0: F
397 a
398No match
399 \x{1d00}
400No match
401
402/[\x{c0}\x{391}]/8i
403 \x{c0}
404 0: \x{c0}
405 \x{e0}
406 0: \x{e0}
407
408/-- The next two are special cases where the lengths of the different cases of
409the same character differ. The first went wrong with heap frame storage; the
410second was broken in all cases. --/
411
412/^\x{023a}+?(\x{0130}+)/8i
413 \x{023a}\x{2c65}\x{0130}
414 0: \x{23a}\x{2c65}\x{130}
415 1: \x{130}
416
417/^\x{023a}+([^X])/8i
418 \x{023a}\x{2c65}X
419 0: \x{23a}\x{2c65}
420 1: \x{2c65}
421
422/\x{c0}+\x{116}+/8i
423 \x{c0}\x{e0}\x{116}\x{117}
424 0: \x{c0}\x{e0}\x{116}\x{117}
425
426/[\x{c0}\x{116}]+/8i
427 \x{c0}\x{e0}\x{116}\x{117}
428 0: \x{c0}\x{e0}\x{116}\x{117}
429
430/(\x{de})\1/8i
431 \x{de}\x{de}
432 0: \x{de}\x{de}
433 1: \x{de}
434 \x{de}\x{fe}
435 0: \x{de}\x{fe}
436 1: \x{de}
437 \x{fe}\x{fe}
438 0: \x{fe}\x{fe}
439 1: \x{fe}
440 \x{fe}\x{de}
441 0: \x{fe}\x{de}
442 1: \x{fe}
443
444/^\x{c0}$/8i
445 \x{c0}
446 0: \x{c0}
447 \x{e0}
448 0: \x{e0}
449
450/^\x{e0}$/8i
451 \x{c0}
452 0: \x{c0}
453 \x{e0}
454 0: \x{e0}
455
456/-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
457will match it only with UCP support, because without that it has no notion
458of case for anything other than the ASCII letters. --/
459
460/((?i)[\x{c0}])/8
461 \x{c0}
462 0: \x{c0}
463 1: \x{c0}
464 \x{e0}
465 0: \x{e0}
466 1: \x{e0}
467
468/(?i:[\x{c0}])/8
469 \x{c0}
470 0: \x{c0}
471 \x{e0}
472 0: \x{e0}
473
474/-- This should be Perl-compatible but Perl 5.11 gets \x{300} wrong. --/8
475
476/^\X/8
477 A
478 0: A
479 A\x{300}BC
480 0: A\x{300}
481 A\x{300}\x{301}\x{302}BC
482 0: A\x{300}\x{301}\x{302}
483 *** Failers
484 0: *
485 \x{300}
486No match
487
488/-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
489
490/^\p{Xan}/8
491 ABCD
492 0: A
493 1234
494 0: 1
495 \x{6ca}
496 0: \x{6ca}
497 \x{a6c}
498 0: \x{a6c}
499 \x{10a7}
500 0: \x{10a7}
501 ** Failers
502No match
503 _ABC
504No match
505
506/^\p{Xan}+/8
507 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
508 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
509 ** Failers
510No match
511 _ABC
512No match
513
514/^\p{Xan}+?/8
515 \x{6ca}\x{a6c}\x{10a7}_
516 0: \x{6ca}
517
518/^\p{Xan}*/8
519 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
520 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
521
522/^\p{Xan}{2,9}/8
523 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
524 0: ABCD1234\x{6ca}
525
526/^\p{Xan}{2,9}?/8
527 \x{6ca}\x{a6c}\x{10a7}_
528 0: \x{6ca}\x{a6c}
529
530/^[\p{Xan}]/8
531 ABCD1234_
532 0: A
533 1234abcd_
534 0: 1
535 \x{6ca}
536 0: \x{6ca}
537 \x{a6c}
538 0: \x{a6c}
539 \x{10a7}
540 0: \x{10a7}
541 ** Failers
542No match
543 _ABC
544No match
545
546/^[\p{Xan}]+/8
547 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
548 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
549 ** Failers
550No match
551 _ABC
552No match
553
554/^>\p{Xsp}/8
555 >\x{1680}\x{2028}\x{0b}
556 0: >\x{1680}
557 >\x{a0}
558 0: >\x{a0}
559 ** Failers
560No match
561 \x{0b}
562No match
563
564/^>\p{Xsp}+/8
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}
567
568/^>\p{Xsp}+?/8
569 >\x{1680}\x{2028}\x{0b}
570 0: >\x{1680}
571
572/^>\p{Xsp}*/8
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}
575
576/^>\p{Xsp}{2,9}/8
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}
579
580/^>\p{Xsp}{2,9}?/8
581 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
582 0: > \x{09}
583
584/^>[\p{Xsp}]/8
585 >\x{2028}\x{0b}
586 0: >\x{2028}
587
588/^>[\p{Xsp}]+/8
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}
591
592/^>\p{Xps}/8
593 >\x{1680}\x{2028}\x{0b}
594 0: >\x{1680}
595 >\x{a0}
596 0: >\x{a0}
597 ** Failers
598No match
599 \x{0b}
600No match
601
602/^>\p{Xps}+/8
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}
605
606/^>\p{Xps}+?/8
607 >\x{1680}\x{2028}\x{0b}
608 0: >\x{1680}
609
610/^>\p{Xps}*/8
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}
613
614/^>\p{Xps}{2,9}/8
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}
617
618/^>\p{Xps}{2,9}?/8
619 > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
620 0: > \x{09}
621
622/^>[\p{Xps}]/8
623 >\x{2028}\x{0b}
624 0: >\x{2028}
625
626/^>[\p{Xps}]+/8
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}
629
630/^\p{Xwd}/8
631 ABCD
632 0: A
633 1234
634 0: 1
635 \x{6ca}
636 0: \x{6ca}
637 \x{a6c}
638 0: \x{a6c}
639 \x{10a7}
640 0: \x{10a7}
641 _ABC
642 0: _
643 ** Failers
644No match
645 []
646No match
647
648/^\p{Xwd}+/8
649 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
650 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
651
652/^\p{Xwd}+?/8
653 \x{6ca}\x{a6c}\x{10a7}_
654 0: \x{6ca}
655
656/^\p{Xwd}*/8
657 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
658 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
659
660/^\p{Xwd}{2,9}/8
661 A_B12\x{6ca}\x{a6c}\x{10a7}
662 0: A_B12\x{6ca}\x{a6c}\x{10a7}
663
664/^\p{Xwd}{2,9}?/8
665 \x{6ca}\x{a6c}\x{10a7}_
666 0: \x{6ca}\x{a6c}
667
668/^[\p{Xwd}]/8
669 ABCD1234_
670 0: A
671 1234abcd_
672 0: 1
673 \x{6ca}
674 0: \x{6ca}
675 \x{a6c}
676 0: \x{a6c}
677 \x{10a7}
678 0: \x{10a7}
679 _ABC
680 0: _
681 ** Failers
682No match
683 []
684No match
685
686/^[\p{Xwd}]+/8
687 ABCD1234\x{6ca}\x{a6c}\x{10a7}_
688 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
689
690/-- A check not in UTF-8 mode --/
691
692/^[\p{Xwd}]+/
693 ABCD1234_
694 0: ABCD1234_
695
696/-- Some negative checks --/
697
698/^[\P{Xwd}]+/8
699 !.+\x{019}\x{35a}AB
700 0: !.+\x{19}\x{35a}
701
702/^[\p{^Xwd}]+/8
703 !.+\x{019}\x{35a}AB
704 0: !.+\x{19}\x{35a}
705
706/[\D]/WBZ8
707------------------------------------------------------------------
708 Bra
709 [\P{Nd}]
710 Ket
711 End
712------------------------------------------------------------------
713 1\x{3c8}2
714 0: \x{3c8}
715
716/[\d]/WBZ8
717------------------------------------------------------------------
718 Bra
719 [\p{Nd}]
720 Ket
721 End
722------------------------------------------------------------------
723 >\x{6f4}<
724 0: \x{6f4}
725
726/[\S]/WBZ8
727------------------------------------------------------------------
728 Bra
729 [\P{Xsp}]
730 Ket
731 End
732------------------------------------------------------------------
733 \x{1680}\x{6f4}\x{1680}
734 0: \x{6f4}
735
736/[\s]/WBZ8
737------------------------------------------------------------------
738 Bra
739 [\p{Xsp}]
740 Ket
741 End
742------------------------------------------------------------------
743 >\x{1680}<
744 0: \x{1680}
745
746/[\W]/WBZ8
747------------------------------------------------------------------
748 Bra
749 [\P{Xwd}]
750 Ket
751 End
752------------------------------------------------------------------
753 A\x{1712}B
754 0: \x{1712}
755
756/[\w]/WBZ8
757------------------------------------------------------------------
758 Bra
759 [\p{Xwd}]
760 Ket
761 End
762------------------------------------------------------------------
763 >\x{1723}<
764 0: \x{1723}
765
766/\D/WBZ8
767------------------------------------------------------------------
768 Bra
769 notprop Nd
770 Ket
771 End
772------------------------------------------------------------------
773 1\x{3c8}2
774 0: \x{3c8}
775
776/\d/WBZ8
777------------------------------------------------------------------
778 Bra
779 prop Nd
780 Ket
781 End
782------------------------------------------------------------------
783 >\x{6f4}<
784 0: \x{6f4}
785
786/\S/WBZ8
787------------------------------------------------------------------
788 Bra
789 notprop Xsp
790 Ket
791 End
792------------------------------------------------------------------
793 \x{1680}\x{6f4}\x{1680}
794 0: \x{6f4}
795
796/\s/WBZ8
797------------------------------------------------------------------
798 Bra
799 prop Xsp
800 Ket
801 End
802------------------------------------------------------------------
803 >\x{1680}>
804 0: \x{1680}
805
806/\W/WBZ8
807------------------------------------------------------------------
808 Bra
809 notprop Xwd
810 Ket
811 End
812------------------------------------------------------------------
813 A\x{1712}B
814 0: \x{1712}
815
816/\w/WBZ8
817------------------------------------------------------------------
818 Bra
819 prop Xwd
820 Ket
821 End
822------------------------------------------------------------------
823 >\x{1723}<
824 0: \x{1723}
825
826/[[:alpha:]]/WBZ
827------------------------------------------------------------------
828 Bra
829 [\p{L}]
830 Ket
831 End
832------------------------------------------------------------------
833
834/[[:lower:]]/WBZ
835------------------------------------------------------------------
836 Bra
837 [\p{Ll}]
838 Ket
839 End
840------------------------------------------------------------------
841
842/[[:upper:]]/WBZ
843------------------------------------------------------------------
844 Bra
845 [\p{Lu}]
846 Ket
847 End
848------------------------------------------------------------------
849
850/[[:alnum:]]/WBZ
851------------------------------------------------------------------
852 Bra
853 [\p{Xan}]
854 Ket
855 End
856------------------------------------------------------------------
857
858/[[:ascii:]]/WBZ
859------------------------------------------------------------------
860 Bra
861 [\x00-\x7f]
862 Ket
863 End
864------------------------------------------------------------------
865
866/[[:blank:]]/WBZ
867------------------------------------------------------------------
868 Bra
869 [\x09 \xa0]
870 Ket
871 End
872------------------------------------------------------------------
873
874/[[:cntrl:]]/WBZ
875------------------------------------------------------------------
876 Bra
877 [\x00-\x1f\x7f]
878 Ket
879 End
880------------------------------------------------------------------
881
882/[[:digit:]]/WBZ
883------------------------------------------------------------------
884 Bra
885 [\p{Nd}]
886 Ket
887 End
888------------------------------------------------------------------
889
890/[[:graph:]]/WBZ
891------------------------------------------------------------------
892 Bra
893 [!-~]
894 Ket
895 End
896------------------------------------------------------------------
897
898/[[:print:]]/WBZ
899------------------------------------------------------------------
900 Bra
901 [ -~]
902 Ket
903 End
904------------------------------------------------------------------
905
906/[[:punct:]]/WBZ
907------------------------------------------------------------------
908 Bra
909 [!-/:-@[-`{-~]
910 Ket
911 End
912------------------------------------------------------------------
913
914/[[:space:]]/WBZ
915------------------------------------------------------------------
916 Bra
917 [\p{Xps}]
918 Ket
919 End
920------------------------------------------------------------------
921
922/[[:word:]]/WBZ
923------------------------------------------------------------------
924 Bra
925 [\p{Xwd}]
926 Ket
927 End
928------------------------------------------------------------------
929
930/[[:xdigit:]]/WBZ
931------------------------------------------------------------------
932 Bra
933 [0-9A-Fa-f]
934 Ket
935 End
936------------------------------------------------------------------
937
938/-- Unicode properties for \b abd \B --/
939
940/\b...\B/8W
941 abc_
942 0: abc
943 \x{37e}abc\x{376}
944 0: abc
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}
948 0: ++\x{c1}
949 !\x{c0}+++++
950 0: \x{c0}++
951
952/-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
953
954/\b...\B/8
955 abc_
956 0: abc
957 ** Failers
958 0: Fai
959 \x{37e}abc\x{376}
960No match
961 \x{37e}\x{376}\x{371}\x{393}\x{394}
962No match
963 !\x{c0}++\x{c1}\x{c2}
964No match
965 !\x{c0}+++++
966No match
967
968/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
969
970/\b...\B/W
971 abc_
972 0: abc
973 !\x{c0}++\x{c1}\x{c2}
974 0: ++\xc1
975 !\x{c0}+++++
976 0: \xc0++
977
978/-- POSIX interface --/
979
980/\w/P
981 +++\x{c2}
982No match: POSIX code 17: match failed
983
984/\w/WP
985 +++\x{c2}
986 0: \xc2
987
988/-- Some of these are silly, but they check various combinations --/
989
990/[[:^alpha:][:^cntrl:]]+/8WBZ
991------------------------------------------------------------------
992 Bra
993 [ -~\x80-\xff\P{L}]+
994 Ket
995 End
996------------------------------------------------------------------
997 123
998 0: 123
999 abc
1000 0: abc
1001
1002/[[:^cntrl:][:^alpha:]]+/8WBZ
1003------------------------------------------------------------------
1004 Bra
1005 [ -~\x80-\xff\P{L}]+
1006 Ket
1007 End
1008------------------------------------------------------------------
1009 123
1010 0: 123
1011 abc
1012 0: abc
1013
1014/[[:alpha:]]+/8WBZ
1015------------------------------------------------------------------
1016 Bra
1017 [\p{L}]+
1018 Ket
1019 End
1020------------------------------------------------------------------
1021 abc
1022 0: abc
1023
1024/[[:^alpha:]\S]+/8WBZ
1025------------------------------------------------------------------
1026 Bra
1027 [\P{L}\P{Xsp}]+
1028 Ket
1029 End
1030------------------------------------------------------------------
1031 123
1032 0: 123
1033 abc
1034 0: abc
1035
1036/[^\d]+/8WBZ
1037------------------------------------------------------------------
1038 Bra
1039 [^\p{Nd}]+
1040 Ket
1041 End
1042------------------------------------------------------------------
1043 abc123
1044 0: abc
1045 abc\x{123}
1046 0: abc\x{123}
1047 \x{660}abc
1048 0: abc
1049
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
1051Capturing subpattern count = 0
1052Options: caseless utf8
1053No first char
1054No need char
1055Subject length lower bound = 17
1056Starting 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}
1061
1062/\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
1063------------------------------------------------------------------
1064 Bra
1065 prop Lu ++
1066 9
1067 prop Lu +
1068 B
1069 prop Lu ++
1070 b
1071 Ket
1072 End
1073------------------------------------------------------------------
1074
1075/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
1076------------------------------------------------------------------
1077 Bra
1078 notprop Lu +
1079 9
1080 notprop Lu ++
1081 B
1082 notprop Lu +
1083 b
1084 Ket
1085 End
1086------------------------------------------------------------------
1087
1088/\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
1089------------------------------------------------------------------
1090 Bra
1091 notprop Lu +
1092 9
1093 notprop Lu ++
1094 B
1095 notprop Lu +
1096 b
1097 Ket
1098 End
1099------------------------------------------------------------------
1100
1101/\p{Han}+X\p{Greek}+\x{370}/BZ8
1102------------------------------------------------------------------
1103 Bra
1104 prop Han ++
1105 X
1106 prop Greek +
1107 \x{370}
1108 Ket
1109 End
1110------------------------------------------------------------------
1111
1112/\p{Xan}+!\p{Xan}+A/BZ
1113------------------------------------------------------------------
1114 Bra
1115 prop Xan ++
1116 !
1117 prop Xan +
1118 A
1119 Ket
1120 End
1121------------------------------------------------------------------
1122
1123/\p{Xsp}+!\p{Xsp}\t/BZ
1124------------------------------------------------------------------
1125 Bra
1126 prop Xsp ++
1127 !
1128 prop Xsp
1129 \x09
1130 Ket
1131 End
1132------------------------------------------------------------------
1133
1134/\p{Xps}+!\p{Xps}\t/BZ
1135------------------------------------------------------------------
1136 Bra
1137 prop Xps ++
1138 !
1139 prop Xps
1140 \x09
1141 Ket
1142 End
1143------------------------------------------------------------------
1144
1145/\p{Xwd}+!\p{Xwd}_/BZ
1146------------------------------------------------------------------
1147 Bra
1148 prop Xwd ++
1149 !
1150 prop Xwd
1151 _
1152 Ket
1153 End
1154------------------------------------------------------------------
1155
1156/A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
1157------------------------------------------------------------------
1158 Bra
1159 A++
1160 prop N
1161 A++
1162 prop Nd
1163 B+
1164 prop N *+
1165 B+
1166 prop Nd *
1167 Ket
1168 End
1169------------------------------------------------------------------
1170
1171/-- These behaved oddly in Perl, so they are kept in this test --/
1172
1173/(\x{23a}\x{23a}\x{23a})?\1/8i
1174 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
1175No match
1176
1177/(ȺȺȺ)?\1/8i
1178 ȺȺȺⱥⱥ
1179No match
1180
1181/(\x{23a}\x{23a}\x{23a})?\1/8i
1182 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1183 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1184 1: \x{23a}\x{23a}\x{23a}
1185
1186/(ȺȺȺ)?\1/8i
1187 ȺȺȺⱥⱥⱥ
1188 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1189 1: \x{23a}\x{23a}\x{23a}
1190
1191/(\x{23a}\x{23a}\x{23a})\1/8i
1192 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
1193No match
1194
1195/(ȺȺȺ)\1/8i
1196 ȺȺȺⱥⱥ
1197No match
1198
1199/(\x{23a}\x{23a}\x{23a})\1/8i
1200 \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1201 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1202 1: \x{23a}\x{23a}\x{23a}
1203
1204/(ȺȺȺ)\1/8i
1205 ȺȺȺⱥⱥⱥ
1206 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1207 1: \x{23a}\x{23a}\x{23a}
1208
1209/(\x{2c65}\x{2c65})\1/8i
1210 \x{2c65}\x{2c65}\x{23a}\x{23a}
1211 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
1212 1: \x{2c65}\x{2c65}
1213
1214/(ⱥⱥ)\1/8i
1215 ⱥⱥȺȺ
1216 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
1217 1: \x{2c65}\x{2c65}
1218
1219/(\x{23a}\x{23a}\x{23a})\1Y/8i
1220 X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
1221 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
1222 1: \x{23a}\x{23a}\x{23a}
1223
1224/(\x{2c65}\x{2c65})\1Y/8i
1225 X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
1226 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
1227 1: \x{2c65}\x{2c65}
1228
1229/-- --/
1230
1231/-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
1232
1233/^[\p{Batak}]/8
1234 \x{1bc0}
1235 0: \x{1bc0}
1236 \x{1bff}
1237 0: \x{1bff}
1238 ** Failers
1239No match
1240 \x{1bf4}
1241No match
1242
1243/^[\p{Brahmi}]/8
1244 \x{11000}
1245 0: \x{11000}
1246 \x{1106f}
1247 0: \x{1106f}
1248 ** Failers
1249No match
1250 \x{1104e}
1251No match
1252
1253/^[\p{Mandaic}]/8
1254 \x{840}
1255 0: \x{840}
1256 \x{85e}
1257 0: \x{85e}
1258 ** Failers
1259No match
1260 \x{85c}
1261No match
1262 \x{85d}
1263No match
1264
1265/-- --/
1266
1267/(\X*)(.)/s8
1268 A\x{300}
1269 0: A
1270 1:
1271 2: A
1272
1273/^S(\X*)e(\X*)$/8
1274 Stéréo
1275No match
1276
1277/^\X/8
1278 ́réo
1279No match
1280
1281/^a\X41z/<JS>
1282 aX41z
1283 0: aX41z
1284 *** Failers
1285No match
1286 aAz
1287No match
1288
1289/(?<=ab\Cde)X/8
1290Failed: \C not allowed in lookbehind assertion at offset 10
1291
1292/-- End of testinput13 --/