xref: /PHP-7.0/ext/pcre/pcrelib/testdata/testoutput7 (revision 5f9df47e)
1/-- 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: utf
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: utf
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: utf
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/[\x{105}-\x{109}]/8iDZ
101------------------------------------------------------------------
102        Bra
103        [\x{104}-\x{109}]
104        Ket
105        End
106------------------------------------------------------------------
107Capturing subpattern count = 0
108Options: caseless utf
109No first char
110No need char
111    \x{104}
112 0: \x{104}
113    \x{105}
114 0: \x{105}
115    \x{109}
116 0: \x{109}
117    ** Failers
118No match
119    \x{100}
120No match
121    \x{10a}
122No match
123
124/[z-\x{100}]/8iDZ
125------------------------------------------------------------------
126        Bra
127        [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}]
128        Ket
129        End
130------------------------------------------------------------------
131Capturing subpattern count = 0
132Options: caseless utf
133No first char
134No need char
135    Z
136 0: Z
137    z
138 0: z
139    \x{39c}
140 0: \x{39c}
141    \x{178}
142 0: \x{178}
143    |
144 0: |
145    \x{80}
146 0: \x{80}
147    \x{ff}
148 0: \x{ff}
149    \x{100}
150 0: \x{100}
151    \x{101}
152 0: \x{101}
153    ** Failers
154No match
155    \x{102}
156No match
157    Y
158No match
159    y
160No match
161
162/[z-\x{100}]/8DZi
163------------------------------------------------------------------
164        Bra
165        [Zz-\xff\x{39c}\x{3bc}\x{212b}\x{1e9e}\x{212b}\x{178}\x{100}-\x{101}]
166        Ket
167        End
168------------------------------------------------------------------
169Capturing subpattern count = 0
170Options: caseless utf
171No first char
172No need char
173
174/(?:[\PPa*]*){8,}/
175
176/[\P{Any}]/BZ
177------------------------------------------------------------------
178        Bra
179        [\P{Any}]
180        Ket
181        End
182------------------------------------------------------------------
183
184/[\P{Any}\E]/BZ
185------------------------------------------------------------------
186        Bra
187        [\P{Any}]
188        Ket
189        End
190------------------------------------------------------------------
191
192/(\P{Yi}+\277)/
193
194/(\P{Yi}+\277)?/
195
196/(?<=\P{Yi}{3}A)X/
197
198/\p{Yi}+(\P{Yi}+)(?1)/
199
200/(\P{Yi}{2}\277)?/
201
202/[\P{Yi}A]/
203
204/[\P{Yi}\P{Yi}\P{Yi}A]/
205
206/[^\P{Yi}A]/
207
208/[^\P{Yi}\P{Yi}\P{Yi}A]/
209
210/(\P{Yi}*\277)*/
211
212/(\P{Yi}*?\277)*/
213
214/(\p{Yi}*+\277)*/
215
216/(\P{Yi}?\277)*/
217
218/(\P{Yi}??\277)*/
219
220/(\p{Yi}?+\277)*/
221
222/(\P{Yi}{0,3}\277)*/
223
224/(\P{Yi}{0,3}?\277)*/
225
226/(\p{Yi}{0,3}+\277)*/
227
228/\p{Zl}{2,3}+/8BZ
229------------------------------------------------------------------
230        Bra
231        prop Zl {2}
232        prop Zl ?+
233        Ket
234        End
235------------------------------------------------------------------
236    


237 0: \x{2028}\x{2028}
238    \x{2028}\x{2028}\x{2028}
239 0: \x{2028}\x{2028}\x{2028}
240
241/\p{Zl}/8BZ
242------------------------------------------------------------------
243        Bra
244        prop Zl
245        Ket
246        End
247------------------------------------------------------------------
248
249/\p{Lu}{3}+/8BZ
250------------------------------------------------------------------
251        Bra
252        prop Lu {3}
253        Ket
254        End
255------------------------------------------------------------------
256
257/\pL{2}+/8BZ
258------------------------------------------------------------------
259        Bra
260        prop L {2}
261        Ket
262        End
263------------------------------------------------------------------
264
265/\p{Cc}{2}+/8BZ
266------------------------------------------------------------------
267        Bra
268        prop Cc {2}
269        Ket
270        End
271------------------------------------------------------------------
272
273/^\p{Cf}/8
274    \x{180e}
275 0: \x{180e}
276    \x{061c}
277 0: \x{61c}
278    \x{2066}
279 0: \x{2066}
280    \x{2067}
281 0: \x{2067}
282    \x{2068}
283 0: \x{2068}
284    \x{2069}
285 0: \x{2069}
286
287/^\p{Cs}/8
288    \?\x{dfff}
289 0: \x{dfff}
290    ** Failers
291No match
292    \x{09f}
293No match
294
295/^\p{Mn}/8
296    \x{1a1b}
297 0: \x{1a1b}
298
299/^\p{Pe}/8
300    \x{2309}
301 0: \x{2309}
302    \x{230b}
303 0: \x{230b}
304
305/^\p{Ps}/8
306    \x{2308}
307 0: \x{2308}
308    \x{230a}
309 0: \x{230a}
310
311/^\p{Sc}+/8
312    $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
313 0: $\x{a2}\x{a3}\x{a4}\x{a5}
314    \x{9f2}
315 0: \x{9f2}
316    ** Failers
317No match
318    X
319No match
320    \x{2c2}
321No match
322
323/^\p{Zs}/8
324    \ \
325 0:
326    \x{a0}
327 0: \x{a0}
328    \x{1680}
329 0: \x{1680}
330    \x{2000}
331 0: \x{2000}
332    \x{2001}
333 0: \x{2001}
334    ** Failers
335No match
336    \x{2028}
337No match
338    \x{200d}
339No match
340
341/-- These are here rather than in test 6 because Perl has problems with
342    the negative versions of the properties and behaves has changed how
343    it behaves for caseless matching. --/
344
345/\p{^Lu}/8i
346    1234
347 0: 1
348    ** Failers
349 0: *
350    ABC
351No match
352
353/\P{Lu}/8i
354    1234
355 0: 1
356    ** Failers
357 0: *
358    ABC
359No match
360
361/\p{Ll}/8i
362    a
363 0: a
364    Az
365 0: z
366    ** Failers
367 0: a
368    ABC
369No match
370
371/\p{Lu}/8i
372    A
373 0: A
374    a\x{10a0}B
375 0: \x{10a0}
376    ** Failers
377 0: F
378    a
379No match
380    \x{1d00}
381No match
382
383/\p{Lu}/8i
384    A
385 0: A
386    aZ
387 0: Z
388    ** Failers
389 0: F
390    abc
391No match
392
393/[\x{c0}\x{391}]/8i
394    \x{c0}
395 0: \x{c0}
396    \x{e0}
397 0: \x{e0}
398
399/-- The next two are special cases where the lengths of the different cases of
400the same character differ. The first went wrong with heap frame storage; the
401second was broken in all cases. --/
402
403/^\x{023a}+?(\x{0130}+)/8i
404  \x{023a}\x{2c65}\x{0130}
405 0: \x{23a}\x{2c65}\x{130}
406 1: \x{130}
407
408/^\x{023a}+([^X])/8i
409  \x{023a}\x{2c65}X
410 0: \x{23a}\x{2c65}
411 1: \x{2c65}
412
413/\x{c0}+\x{116}+/8i
414    \x{c0}\x{e0}\x{116}\x{117}
415 0: \x{c0}\x{e0}\x{116}\x{117}
416
417/[\x{c0}\x{116}]+/8i
418    \x{c0}\x{e0}\x{116}\x{117}
419 0: \x{c0}\x{e0}\x{116}\x{117}
420
421/(\x{de})\1/8i
422    \x{de}\x{de}
423 0: \x{de}\x{de}
424 1: \x{de}
425    \x{de}\x{fe}
426 0: \x{de}\x{fe}
427 1: \x{de}
428    \x{fe}\x{fe}
429 0: \x{fe}\x{fe}
430 1: \x{fe}
431    \x{fe}\x{de}
432 0: \x{fe}\x{de}
433 1: \x{fe}
434
435/^\x{c0}$/8i
436    \x{c0}
437 0: \x{c0}
438    \x{e0}
439 0: \x{e0}
440
441/^\x{e0}$/8i
442    \x{c0}
443 0: \x{c0}
444    \x{e0}
445 0: \x{e0}
446
447/-- The next two should be Perl-compatible, but it fails to match \x{e0}. PCRE
448will match it only with UCP support, because without that it has no notion
449of case for anything other than the ASCII letters. --/
450
451/((?i)[\x{c0}])/8
452    \x{c0}
453 0: \x{c0}
454 1: \x{c0}
455    \x{e0}
456 0: \x{e0}
457 1: \x{e0}
458
459/(?i:[\x{c0}])/8
460    \x{c0}
461 0: \x{c0}
462    \x{e0}
463 0: \x{e0}
464
465/-- These are PCRE's extra properties to help with Unicodizing \d etc. --/
466
467/^\p{Xan}/8
468    ABCD
469 0: A
470    1234
471 0: 1
472    \x{6ca}
473 0: \x{6ca}
474    \x{a6c}
475 0: \x{a6c}
476    \x{10a7}
477 0: \x{10a7}
478    ** Failers
479No match
480    _ABC
481No match
482
483/^\p{Xan}+/8
484    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
485 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
486    ** Failers
487No match
488    _ABC
489No match
490
491/^\p{Xan}+?/8
492    \x{6ca}\x{a6c}\x{10a7}_
493 0: \x{6ca}
494
495/^\p{Xan}*/8
496    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
497 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
498
499/^\p{Xan}{2,9}/8
500    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
501 0: ABCD1234\x{6ca}
502
503/^\p{Xan}{2,9}?/8
504    \x{6ca}\x{a6c}\x{10a7}_
505 0: \x{6ca}\x{a6c}
506
507/^[\p{Xan}]/8
508    ABCD1234_
509 0: A
510    1234abcd_
511 0: 1
512    \x{6ca}
513 0: \x{6ca}
514    \x{a6c}
515 0: \x{a6c}
516    \x{10a7}
517 0: \x{10a7}
518    ** Failers
519No match
520    _ABC
521No match
522
523/^[\p{Xan}]+/8
524    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
525 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
526    ** Failers
527No match
528    _ABC
529No match
530
531/^>\p{Xsp}/8
532    >\x{1680}\x{2028}\x{0b}
533 0: >\x{1680}
534    >\x{a0}
535 0: >\x{a0}
536    ** Failers
537No match
538    \x{0b}
539No match
540
541/^>\p{Xsp}+/8
542    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
543 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
544
545/^>\p{Xsp}+?/8
546    >\x{1680}\x{2028}\x{0b}
547 0: >\x{1680}
548
549/^>\p{Xsp}*/8
550    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
551 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
552
553/^>\p{Xsp}{2,9}/8
554    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
555 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
556
557/^>\p{Xsp}{2,9}?/8
558    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
559 0: > \x{09}
560
561/^>[\p{Xsp}]/8
562    >\x{2028}\x{0b}
563 0: >\x{2028}
564
565/^>[\p{Xsp}]+/8
566    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
567 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
568
569/^>\p{Xps}/8
570    >\x{1680}\x{2028}\x{0b}
571 0: >\x{1680}
572    >\x{a0}
573 0: >\x{a0}
574    ** Failers
575No match
576    \x{0b}
577No match
578
579/^>\p{Xps}+/8
580    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
581 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
582
583/^>\p{Xps}+?/8
584    >\x{1680}\x{2028}\x{0b}
585 0: >\x{1680}
586
587/^>\p{Xps}*/8
588    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
589 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
590
591/^>\p{Xps}{2,9}/8
592    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
593 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
594
595/^>\p{Xps}{2,9}?/8
596    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
597 0: > \x{09}
598
599/^>[\p{Xps}]/8
600    >\x{2028}\x{0b}
601 0: >\x{2028}
602
603/^>[\p{Xps}]+/8
604    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
605 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
606
607/^\p{Xwd}/8
608    ABCD
609 0: A
610    1234
611 0: 1
612    \x{6ca}
613 0: \x{6ca}
614    \x{a6c}
615 0: \x{a6c}
616    \x{10a7}
617 0: \x{10a7}
618    _ABC
619 0: _
620    ** Failers
621No match
622    []
623No match
624
625/^\p{Xwd}+/8
626    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
627 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
628
629/^\p{Xwd}+?/8
630    \x{6ca}\x{a6c}\x{10a7}_
631 0: \x{6ca}
632
633/^\p{Xwd}*/8
634    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
635 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
636
637/^\p{Xwd}{2,9}/8
638    A_B12\x{6ca}\x{a6c}\x{10a7}
639 0: A_B12\x{6ca}\x{a6c}\x{10a7}
640
641/^\p{Xwd}{2,9}?/8
642    \x{6ca}\x{a6c}\x{10a7}_
643 0: \x{6ca}\x{a6c}
644
645/^[\p{Xwd}]/8
646    ABCD1234_
647 0: A
648    1234abcd_
649 0: 1
650    \x{6ca}
651 0: \x{6ca}
652    \x{a6c}
653 0: \x{a6c}
654    \x{10a7}
655 0: \x{10a7}
656    _ABC
657 0: _
658    ** Failers
659No match
660    []
661No match
662
663/^[\p{Xwd}]+/8
664    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
665 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
666
667/-- A check not in UTF-8 mode --/
668
669/^[\p{Xwd}]+/
670    ABCD1234_
671 0: ABCD1234_
672
673/-- Some negative checks --/
674
675/^[\P{Xwd}]+/8
676    !.+\x{019}\x{35a}AB
677 0: !.+\x{19}\x{35a}
678
679/^[\p{^Xwd}]+/8
680    !.+\x{019}\x{35a}AB
681 0: !.+\x{19}\x{35a}
682
683/[\D]/WBZ8
684------------------------------------------------------------------
685        Bra
686        [\P{Nd}]
687        Ket
688        End
689------------------------------------------------------------------
690    1\x{3c8}2
691 0: \x{3c8}
692
693/[\d]/WBZ8
694------------------------------------------------------------------
695        Bra
696        [\p{Nd}]
697        Ket
698        End
699------------------------------------------------------------------
700    >\x{6f4}<
701 0: \x{6f4}
702
703/[\S]/WBZ8
704------------------------------------------------------------------
705        Bra
706        [\P{Xsp}]
707        Ket
708        End
709------------------------------------------------------------------
710    \x{1680}\x{6f4}\x{1680}
711 0: \x{6f4}
712
713/[\s]/WBZ8
714------------------------------------------------------------------
715        Bra
716        [\p{Xsp}]
717        Ket
718        End
719------------------------------------------------------------------
720    >\x{1680}<
721 0: \x{1680}
722
723/[\W]/WBZ8
724------------------------------------------------------------------
725        Bra
726        [\P{Xwd}]
727        Ket
728        End
729------------------------------------------------------------------
730    A\x{1712}B
731 0: \x{1712}
732
733/[\w]/WBZ8
734------------------------------------------------------------------
735        Bra
736        [\p{Xwd}]
737        Ket
738        End
739------------------------------------------------------------------
740    >\x{1723}<
741 0: \x{1723}
742
743/\D/WBZ8
744------------------------------------------------------------------
745        Bra
746        notprop Nd
747        Ket
748        End
749------------------------------------------------------------------
750    1\x{3c8}2
751 0: \x{3c8}
752
753/\d/WBZ8
754------------------------------------------------------------------
755        Bra
756        prop Nd
757        Ket
758        End
759------------------------------------------------------------------
760    >\x{6f4}<
761 0: \x{6f4}
762
763/\S/WBZ8
764------------------------------------------------------------------
765        Bra
766        notprop Xsp
767        Ket
768        End
769------------------------------------------------------------------
770    \x{1680}\x{6f4}\x{1680}
771 0: \x{6f4}
772
773/\s/WBZ8
774------------------------------------------------------------------
775        Bra
776        prop Xsp
777        Ket
778        End
779------------------------------------------------------------------
780    >\x{1680}>
781 0: \x{1680}
782
783/\W/WBZ8
784------------------------------------------------------------------
785        Bra
786        notprop Xwd
787        Ket
788        End
789------------------------------------------------------------------
790    A\x{1712}B
791 0: \x{1712}
792
793/\w/WBZ8
794------------------------------------------------------------------
795        Bra
796        prop Xwd
797        Ket
798        End
799------------------------------------------------------------------
800    >\x{1723}<
801 0: \x{1723}
802
803/[[:alpha:]]/WBZ
804------------------------------------------------------------------
805        Bra
806        [\p{L}]
807        Ket
808        End
809------------------------------------------------------------------
810
811/[[:lower:]]/WBZ
812------------------------------------------------------------------
813        Bra
814        [\p{Ll}]
815        Ket
816        End
817------------------------------------------------------------------
818
819/[[:upper:]]/WBZ
820------------------------------------------------------------------
821        Bra
822        [\p{Lu}]
823        Ket
824        End
825------------------------------------------------------------------
826
827/[[:alnum:]]/WBZ
828------------------------------------------------------------------
829        Bra
830        [\p{Xan}]
831        Ket
832        End
833------------------------------------------------------------------
834
835/[[:ascii:]]/WBZ
836------------------------------------------------------------------
837        Bra
838        [\x00-\x7f]
839        Ket
840        End
841------------------------------------------------------------------
842
843/[[:cntrl:]]/WBZ
844------------------------------------------------------------------
845        Bra
846        [\x00-\x1f\x7f]
847        Ket
848        End
849------------------------------------------------------------------
850
851/[[:digit:]]/WBZ
852------------------------------------------------------------------
853        Bra
854        [\p{Nd}]
855        Ket
856        End
857------------------------------------------------------------------
858
859/[[:graph:]]/WBZ
860------------------------------------------------------------------
861        Bra
862        [[:graph:]]
863        Ket
864        End
865------------------------------------------------------------------
866
867/[[:print:]]/WBZ
868------------------------------------------------------------------
869        Bra
870        [[:print:]]
871        Ket
872        End
873------------------------------------------------------------------
874
875/[[:punct:]]/WBZ
876------------------------------------------------------------------
877        Bra
878        [[:punct:]]
879        Ket
880        End
881------------------------------------------------------------------
882
883/[[:space:]]/WBZ
884------------------------------------------------------------------
885        Bra
886        [\p{Xps}]
887        Ket
888        End
889------------------------------------------------------------------
890
891/[[:word:]]/WBZ
892------------------------------------------------------------------
893        Bra
894        [\p{Xwd}]
895        Ket
896        End
897------------------------------------------------------------------
898
899/[[:xdigit:]]/WBZ
900------------------------------------------------------------------
901        Bra
902        [0-9A-Fa-f]
903        Ket
904        End
905------------------------------------------------------------------
906
907/-- Unicode properties for \b abd \B --/
908
909/\b...\B/8W
910    abc_
911 0: abc
912    \x{37e}abc\x{376}
913 0: abc
914    \x{37e}\x{376}\x{371}\x{393}\x{394}
915 0: \x{376}\x{371}\x{393}
916    !\x{c0}++\x{c1}\x{c2}
917 0: ++\x{c1}
918    !\x{c0}+++++
919 0: \x{c0}++
920
921/-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
922
923/\b...\B/8
924    abc_
925 0: abc
926    ** Failers
927 0: Fai
928    \x{37e}abc\x{376}
929No match
930    \x{37e}\x{376}\x{371}\x{393}\x{394}
931No match
932    !\x{c0}++\x{c1}\x{c2}
933No match
934    !\x{c0}+++++
935No match
936
937/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
938
939/\b...\B/W
940    abc_
941 0: abc
942    !\x{c0}++\x{c1}\x{c2}
943 0: ++\xc1
944    !\x{c0}+++++
945 0: \xc0++
946
947/-- Some of these are silly, but they check various combinations --/
948
949/[[:^alpha:][:^cntrl:]]+/8WBZ
950------------------------------------------------------------------
951        Bra
952        [ -~\x80-\xff\P{L}\x{100}-\x{10ffff}]++
953        Ket
954        End
955------------------------------------------------------------------
956    123
957 0: 123
958    abc
959 0: abc
960
961/[[:^cntrl:][:^alpha:]]+/8WBZ
962------------------------------------------------------------------
963        Bra
964        [ -~\x80-\xff\x{100}-\x{10ffff}\P{L}]++
965        Ket
966        End
967------------------------------------------------------------------
968    123
969 0: 123
970    abc
971 0: abc
972
973/[[:alpha:]]+/8WBZ
974------------------------------------------------------------------
975        Bra
976        [\p{L}]++
977        Ket
978        End
979------------------------------------------------------------------
980    abc
981 0: abc
982
983/[[:^alpha:]\S]+/8WBZ
984------------------------------------------------------------------
985        Bra
986        [\P{L}\P{Xsp}]++
987        Ket
988        End
989------------------------------------------------------------------
990    123
991 0: 123
992    abc
993 0: abc
994
995/[^\d]+/8WBZ
996------------------------------------------------------------------
997        Bra
998        [^\p{Nd}]++
999        Ket
1000        End
1001------------------------------------------------------------------
1002    abc123
1003 0: abc
1004    abc\x{123}
1005 0: abc\x{123}
1006    \x{660}abc
1007 0: abc
1008
1009/\p{Lu}+9\p{Lu}+B\p{Lu}+b/BZ
1010------------------------------------------------------------------
1011        Bra
1012        prop Lu ++
1013        9
1014        prop Lu +
1015        B
1016        prop Lu ++
1017        b
1018        Ket
1019        End
1020------------------------------------------------------------------
1021
1022/\p{^Lu}+9\p{^Lu}+B\p{^Lu}+b/BZ
1023------------------------------------------------------------------
1024        Bra
1025        notprop Lu +
1026        9
1027        notprop Lu ++
1028        B
1029        notprop Lu +
1030        b
1031        Ket
1032        End
1033------------------------------------------------------------------
1034
1035/\P{Lu}+9\P{Lu}+B\P{Lu}+b/BZ
1036------------------------------------------------------------------
1037        Bra
1038        notprop Lu +
1039        9
1040        notprop Lu ++
1041        B
1042        notprop Lu +
1043        b
1044        Ket
1045        End
1046------------------------------------------------------------------
1047
1048/\p{Han}+X\p{Greek}+\x{370}/BZ8
1049------------------------------------------------------------------
1050        Bra
1051        prop Han ++
1052        X
1053        prop Greek +
1054        \x{370}
1055        Ket
1056        End
1057------------------------------------------------------------------
1058
1059/\p{Xan}+!\p{Xan}+A/BZ
1060------------------------------------------------------------------
1061        Bra
1062        prop Xan ++
1063        !
1064        prop Xan +
1065        A
1066        Ket
1067        End
1068------------------------------------------------------------------
1069
1070/\p{Xsp}+!\p{Xsp}\t/BZ
1071------------------------------------------------------------------
1072        Bra
1073        prop Xsp ++
1074        !
1075        prop Xsp
1076        \x09
1077        Ket
1078        End
1079------------------------------------------------------------------
1080
1081/\p{Xps}+!\p{Xps}\t/BZ
1082------------------------------------------------------------------
1083        Bra
1084        prop Xps ++
1085        !
1086        prop Xps
1087        \x09
1088        Ket
1089        End
1090------------------------------------------------------------------
1091
1092/\p{Xwd}+!\p{Xwd}_/BZ
1093------------------------------------------------------------------
1094        Bra
1095        prop Xwd ++
1096        !
1097        prop Xwd
1098        _
1099        Ket
1100        End
1101------------------------------------------------------------------
1102
1103/A+\p{N}A+\dB+\p{N}*B+\d*/WBZ
1104------------------------------------------------------------------
1105        Bra
1106        A++
1107        prop N
1108        A++
1109        prop Nd
1110        B+
1111        prop N *+
1112        B++
1113        prop Nd *+
1114        Ket
1115        End
1116------------------------------------------------------------------
1117
1118/-- These behaved oddly in Perl, so they are kept in this test --/
1119
1120/(\x{23a}\x{23a}\x{23a})?\1/8i
1121    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
1122No match
1123
1124/(ȺȺȺ)?\1/8i
1125    ȺȺȺⱥⱥ
1126No match
1127
1128/(\x{23a}\x{23a}\x{23a})?\1/8i
1129    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1130 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1131 1: \x{23a}\x{23a}\x{23a}
1132
1133/(ȺȺȺ)?\1/8i
1134    ȺȺȺⱥⱥⱥ
1135 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1136 1: \x{23a}\x{23a}\x{23a}
1137
1138/(\x{23a}\x{23a}\x{23a})\1/8i
1139    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}
1140No match
1141
1142/(ȺȺȺ)\1/8i
1143    ȺȺȺⱥⱥ
1144No match
1145
1146/(\x{23a}\x{23a}\x{23a})\1/8i
1147    \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1148 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1149 1: \x{23a}\x{23a}\x{23a}
1150
1151/(ȺȺȺ)\1/8i
1152    ȺȺȺⱥⱥⱥ
1153 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}
1154 1: \x{23a}\x{23a}\x{23a}
1155
1156/(\x{2c65}\x{2c65})\1/8i
1157    \x{2c65}\x{2c65}\x{23a}\x{23a}
1158 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
1159 1: \x{2c65}\x{2c65}
1160
1161/(ⱥⱥ)\1/8i
1162    ⱥⱥȺȺ
1163 0: \x{2c65}\x{2c65}\x{23a}\x{23a}
1164 1: \x{2c65}\x{2c65}
1165
1166/(\x{23a}\x{23a}\x{23a})\1Y/8i
1167    X\x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}YZ
1168 0: \x{23a}\x{23a}\x{23a}\x{2c65}\x{2c65}\x{2c65}Y
1169 1: \x{23a}\x{23a}\x{23a}
1170
1171/(\x{2c65}\x{2c65})\1Y/8i
1172    X\x{2c65}\x{2c65}\x{23a}\x{23a}YZ
1173 0: \x{2c65}\x{2c65}\x{23a}\x{23a}Y
1174 1: \x{2c65}\x{2c65}
1175
1176/-- --/
1177
1178/-- These scripts weren't yet in Perl when I added Unicode 6.0.0 to PCRE --/
1179
1180/^[\p{Batak}]/8
1181    \x{1bc0}
1182 0: \x{1bc0}
1183    \x{1bff}
1184 0: \x{1bff}
1185    ** Failers
1186No match
1187    \x{1bf4}
1188No match
1189
1190/^[\p{Brahmi}]/8
1191    \x{11000}
1192 0: \x{11000}
1193    \x{1106f}
1194 0: \x{1106f}
1195    ** Failers
1196No match
1197    \x{1104e}
1198No match
1199
1200/^[\p{Mandaic}]/8
1201    \x{840}
1202 0: \x{840}
1203    \x{85e}
1204 0: \x{85e}
1205    ** Failers
1206No match
1207    \x{85c}
1208No match
1209    \x{85d}
1210No match
1211
1212/-- --/
1213
1214/(\X*)(.)/s8
1215    A\x{300}
1216 0: A
1217 1:
1218 2: A
1219
1220/^S(\X*)e(\X*)$/8
1221    Stéréo
1222 0: Ste\x{301}re\x{301}o
1223 1: te\x{301}r
1224 2: \x{301}o
1225
1226/^\X/8
1227    ́réo
1228 0: \x{301}
1229
1230/^a\X41z/<JS>
1231    aX41z
1232 0: aX41z
1233    *** Failers
1234No match
1235    aAz
1236No match
1237
1238/(?<=ab\Cde)X/8
1239Failed: \C not allowed in lookbehind assertion at offset 10
1240
1241/\X/
1242    a\P
1243 0: a
1244    a\P\P
1245Partial match: a
1246
1247/\Xa/
1248    aa\P
1249 0: aa
1250    aa\P\P
1251 0: aa
1252
1253/\X{2}/
1254    aa\P
1255 0: aa
1256    aa\P\P
1257Partial match: aa
1258
1259/\X+a/
1260    a\P
1261Partial match: a
1262    aa\P
1263 0: aa
1264    aa\P\P
1265Partial match: aa
1266
1267/\X+?a/
1268    a\P
1269Partial match: a
1270    ab\P
1271Partial match: ab
1272    aa\P
1273 0: aa
1274    aa\P\P
1275 0: aa
1276    aba\P
1277 0: aba
1278
1279/-- These Unicode 6.1.0 scripts are not known to Perl. --/
1280
1281/\p{Chakma}\d/8W
1282    \x{11100}\x{1113c}
1283 0: \x{11100}\x{1113c}
1284
1285/\p{Takri}\d/8W
1286    \x{11680}\x{116c0}
1287 0: \x{11680}\x{116c0}
1288
1289/^\X/8
1290    A\P
1291 0: A
1292    A\P\P
1293Partial match: A
1294    A\x{300}\x{301}\P
1295 0: A\x{300}\x{301}
1296    A\x{300}\x{301}\P\P
1297Partial match: A\x{300}\x{301}
1298    A\x{301}\P
1299 0: A\x{301}
1300    A\x{301}\P\P
1301Partial match: A\x{301}
1302
1303/^\X{2,3}/8
1304    A\P
1305Partial match: A
1306    A\P\P
1307Partial match: A
1308    AA\P
1309 0: AA
1310    AA\P\P
1311Partial match: AA
1312    A\x{300}\x{301}\P
1313Partial match: A\x{300}\x{301}
1314    A\x{300}\x{301}\P\P
1315Partial match: A\x{300}\x{301}
1316    A\x{300}\x{301}A\x{300}\x{301}\P
1317 0: A\x{300}\x{301}A\x{300}\x{301}
1318    A\x{300}\x{301}A\x{300}\x{301}\P\P
1319Partial match: A\x{300}\x{301}A\x{300}\x{301}
1320
1321/^\X{2}/8
1322    AA\P
1323 0: AA
1324    AA\P\P
1325Partial match: AA
1326    A\x{300}\x{301}A\x{300}\x{301}\P
1327 0: A\x{300}\x{301}A\x{300}\x{301}
1328    A\x{300}\x{301}A\x{300}\x{301}\P\P
1329Partial match: A\x{300}\x{301}A\x{300}\x{301}
1330
1331/^\X+/8
1332    AA\P
1333 0: AA
1334    AA\P\P
1335Partial match: AA
1336
1337/^\X+?Z/8
1338    AA\P
1339Partial match: AA
1340    AA\P\P
1341Partial match: AA
1342
1343/A\x{3a3}B/8iDZ
1344------------------------------------------------------------------
1345        Bra
1346     /i A
1347        clist 03a3 03c2 03c3
1348     /i B
1349        Ket
1350        End
1351------------------------------------------------------------------
1352Capturing subpattern count = 0
1353Options: caseless utf
1354First char = 'A' (caseless)
1355Need char = 'B' (caseless)
1356
1357/\x{3a3}B/8iDZ
1358------------------------------------------------------------------
1359        Bra
1360        clist 03a3 03c2 03c3
1361     /i B
1362        Ket
1363        End
1364------------------------------------------------------------------
1365Capturing subpattern count = 0
1366Options: caseless utf
1367No first char
1368Need char = 'B' (caseless)
1369
1370/[\x{3a3}]/8iBZ
1371------------------------------------------------------------------
1372        Bra
1373        clist 03a3 03c2 03c3
1374        Ket
1375        End
1376------------------------------------------------------------------
1377
1378/[^\x{3a3}]/8iBZ
1379------------------------------------------------------------------
1380        Bra
1381        not clist 03a3 03c2 03c3
1382        Ket
1383        End
1384------------------------------------------------------------------
1385
1386/[\x{3a3}]+/8iBZ
1387------------------------------------------------------------------
1388        Bra
1389        clist 03a3 03c2 03c3 ++
1390        Ket
1391        End
1392------------------------------------------------------------------
1393
1394/[^\x{3a3}]+/8iBZ
1395------------------------------------------------------------------
1396        Bra
1397        not clist 03a3 03c2 03c3 ++
1398        Ket
1399        End
1400------------------------------------------------------------------
1401
1402/a*\x{3a3}/8iBZ
1403------------------------------------------------------------------
1404        Bra
1405     /i a*+
1406        clist 03a3 03c2 03c3
1407        Ket
1408        End
1409------------------------------------------------------------------
1410
1411/\x{3a3}+a/8iBZ
1412------------------------------------------------------------------
1413        Bra
1414        clist 03a3 03c2 03c3 ++
1415     /i a
1416        Ket
1417        End
1418------------------------------------------------------------------
1419
1420/\x{3a3}*\x{3c2}/8iBZ
1421------------------------------------------------------------------
1422        Bra
1423        clist 03a3 03c2 03c3 *
1424        clist 03a3 03c2 03c3
1425        Ket
1426        End
1427------------------------------------------------------------------
1428
1429/\x{3a3}{3}/8i+
1430    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1431 0: \x{3a3}\x{3c3}\x{3c2}
1432 0+ \x{3a3}\x{3c3}\x{3c2}
1433
1434/\x{3a3}{2,4}/8i+
1435    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1436 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}
1437 0+ \x{3c3}\x{3c2}
1438
1439/\x{3a3}{2,4}?/8i+
1440    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1441 0: \x{3a3}\x{3c3}
1442 0+ \x{3c2}\x{3a3}\x{3c3}\x{3c2}
1443
1444/\x{3a3}+./8i+
1445    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1446 0: \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1447 0+
1448
1449/\x{3a3}++./8i+
1450    ** Failers
1451No match
1452    \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1453No match
1454
1455/\x{3a3}*\x{3c2}/8iBZ
1456------------------------------------------------------------------
1457        Bra
1458        clist 03a3 03c2 03c3 *
1459        clist 03a3 03c2 03c3
1460        Ket
1461        End
1462------------------------------------------------------------------
1463
1464/[^\x{3a3}]*\x{3c2}/8iBZ
1465------------------------------------------------------------------
1466        Bra
1467        not clist 03a3 03c2 03c3 *+
1468        clist 03a3 03c2 03c3
1469        Ket
1470        End
1471------------------------------------------------------------------
1472
1473/[^a]*\x{3c2}/8iBZ
1474------------------------------------------------------------------
1475        Bra
1476     /i [^a]*
1477        clist 03a3 03c2 03c3
1478        Ket
1479        End
1480------------------------------------------------------------------
1481
1482/ist/8iBZ
1483------------------------------------------------------------------
1484        Bra
1485     /i i
1486        clist 0053 0073 017f
1487     /i t
1488        Ket
1489        End
1490------------------------------------------------------------------
1491    ikt
1492No match
1493
1494/is+t/8i
1495    iSs\x{17f}t
1496 0: iSs\x{17f}t
1497    ikt
1498No match
1499
1500/is+?t/8i
1501    ikt
1502No match
1503
1504/is?t/8i
1505    ikt
1506No match
1507
1508/is{2}t/8i
1509    iskt
1510No match
1511
1512/-- This property is a PCRE special --/
1513
1514/^\p{Xuc}/8
1515    $abc
1516 0: $
1517    @abc
1518 0: @
1519    `abc
1520 0: `
1521    \x{1234}abc
1522 0: \x{1234}
1523    ** Failers
1524No match
1525    abc
1526No match
1527
1528/^\p{Xuc}+/8
1529    $@`\x{a0}\x{1234}\x{e000}**
1530 0: $@`\x{a0}\x{1234}\x{e000}
1531    ** Failers
1532No match
1533    \x{9f}
1534No match
1535
1536/^\p{Xuc}+?/8
1537    $@`\x{a0}\x{1234}\x{e000}**
1538 0: $
1539    ** Failers
1540No match
1541    \x{9f}
1542No match
1543
1544/^\p{Xuc}+?\*/8
1545    $@`\x{a0}\x{1234}\x{e000}**
1546 0: $@`\x{a0}\x{1234}\x{e000}*
1547    ** Failers
1548No match
1549    \x{9f}
1550No match
1551
1552/^\p{Xuc}++/8
1553    $@`\x{a0}\x{1234}\x{e000}**
1554 0: $@`\x{a0}\x{1234}\x{e000}
1555    ** Failers
1556No match
1557    \x{9f}
1558No match
1559
1560/^\p{Xuc}{3,5}/8
1561    $@`\x{a0}\x{1234}\x{e000}**
1562 0: $@`\x{a0}\x{1234}
1563    ** Failers
1564No match
1565    \x{9f}
1566No match
1567
1568/^\p{Xuc}{3,5}?/8
1569    $@`\x{a0}\x{1234}\x{e000}**
1570 0: $@`
1571    ** Failers
1572No match
1573    \x{9f}
1574No match
1575
1576/^[\p{Xuc}]/8
1577    $@`\x{a0}\x{1234}\x{e000}**
1578 0: $
1579    ** Failers
1580No match
1581    \x{9f}
1582No match
1583
1584/^[\p{Xuc}]+/8
1585    $@`\x{a0}\x{1234}\x{e000}**
1586 0: $@`\x{a0}\x{1234}\x{e000}
1587    ** Failers
1588No match
1589    \x{9f}
1590No match
1591
1592/^\P{Xuc}/8
1593    abc
1594 0: a
1595    ** Failers
1596 0: *
1597    $abc
1598No match
1599    @abc
1600No match
1601    `abc
1602No match
1603    \x{1234}abc
1604No match
1605
1606/^[\P{Xuc}]/8
1607    abc
1608 0: a
1609    ** Failers
1610 0: *
1611    $abc
1612No match
1613    @abc
1614No match
1615    `abc
1616No match
1617    \x{1234}abc
1618No match
1619
1620/-- Some auto-possessification tests --/
1621
1622/\pN+\z/BZ
1623------------------------------------------------------------------
1624        Bra
1625        prop N ++
1626        \z
1627        Ket
1628        End
1629------------------------------------------------------------------
1630
1631/\PN+\z/BZ
1632------------------------------------------------------------------
1633        Bra
1634        notprop N ++
1635        \z
1636        Ket
1637        End
1638------------------------------------------------------------------
1639
1640/\pN+/BZ
1641------------------------------------------------------------------
1642        Bra
1643        prop N ++
1644        Ket
1645        End
1646------------------------------------------------------------------
1647
1648/\PN+/BZ
1649------------------------------------------------------------------
1650        Bra
1651        notprop N ++
1652        Ket
1653        End
1654------------------------------------------------------------------
1655
1656/\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
1657------------------------------------------------------------------
1658        Bra
1659        prop Any +
1660        prop Any
1661        prop Any +
1662        notprop Any
1663        prop Any +
1664        prop L&
1665        prop Any +
1666        prop L
1667        prop Any +
1668        prop Lu
1669        prop Any +
1670        prop Han
1671        prop Any +
1672        prop Xan
1673        prop Any +
1674        prop Xsp
1675        prop Any +
1676        prop Xps
1677        prop Xwd +
1678        prop Any
1679        prop Any +
1680        prop Xuc
1681        Ket
1682        End
1683------------------------------------------------------------------
1684
1685/\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
1686------------------------------------------------------------------
1687        Bra
1688        prop L& +
1689        prop Any
1690        prop L& +
1691        prop L&
1692        notprop L& ++
1693        prop L&
1694        prop L& +
1695        prop L
1696        prop L& +
1697        prop Lu
1698        prop L& +
1699        prop Han
1700        prop L& +
1701        prop Xan
1702        prop L& ++
1703        notprop Xan
1704        prop L& ++
1705        prop Xsp
1706        prop L& ++
1707        prop Xps
1708        prop Xwd +
1709        prop L&
1710        prop L& +
1711        prop Xuc
1712        Ket
1713        End
1714------------------------------------------------------------------
1715
1716/\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
1717------------------------------------------------------------------
1718        Bra
1719        prop N +
1720        prop Any
1721        prop N +
1722        prop L&
1723        prop N ++
1724        prop L
1725        prop N +
1726        notprop L
1727        prop N ++
1728        notprop N
1729        prop N ++
1730        prop Lu
1731        prop N +
1732        prop Han
1733        prop N +
1734        prop Xan
1735        prop N ++
1736        prop Xsp
1737        prop N ++
1738        prop Xps
1739        prop Xwd +
1740        prop N
1741        prop N +
1742        prop Xuc
1743        Ket
1744        End
1745------------------------------------------------------------------
1746
1747/\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
1748------------------------------------------------------------------
1749        Bra
1750        prop Lu +
1751        prop Any
1752        prop Lu +
1753        prop L&
1754        prop Lu +
1755        prop L
1756        prop Lu +
1757        prop Lu
1758        notprop Lu ++
1759        prop Lu
1760        prop Lu ++
1761        prop Nd
1762        prop Lu +
1763        notprop Nd
1764        prop Lu +
1765        prop Han
1766        prop Lu +
1767        prop Xan
1768        prop Lu ++
1769        prop Xsp
1770        prop Lu ++
1771        prop Xps
1772        prop Xwd +
1773        prop Lu
1774        prop Lu +
1775        prop Xuc
1776        Ket
1777        End
1778------------------------------------------------------------------
1779
1780/\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
1781------------------------------------------------------------------
1782        Bra
1783        prop Han +
1784        prop Lu
1785        prop Han +
1786        prop L&
1787        prop Han +
1788        prop L
1789        prop Han +
1790        prop Lu
1791        prop Han ++
1792        prop Arabic
1793        prop Arabic +
1794        prop Arabic
1795        prop Han +
1796        prop Xan
1797        prop Han +
1798        prop Xsp
1799        prop Han +
1800        prop Xps
1801        prop Xwd +
1802        prop Han
1803        prop Han +
1804        prop Xuc
1805        Ket
1806        End
1807------------------------------------------------------------------
1808
1809/\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
1810------------------------------------------------------------------
1811        Bra
1812        prop Xan +
1813        prop Any
1814        prop Xan +
1815        prop L&
1816        notprop Xan ++
1817        prop L&
1818        prop Xan +
1819        prop L
1820        prop Xan +
1821        prop Lu
1822        prop Xan +
1823        prop Han
1824        prop Xan +
1825        prop Xan
1826        prop Xan ++
1827        notprop Xan
1828        prop Xan ++
1829        prop Xsp
1830        prop Xan ++
1831        prop Xps
1832        prop Xwd +
1833        prop Xan
1834        prop Xan +
1835        prop Xuc
1836        Ket
1837        End
1838------------------------------------------------------------------
1839
1840/\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
1841------------------------------------------------------------------
1842        Bra
1843        prop Xsp +
1844        prop Any
1845        prop Xsp ++
1846        prop L&
1847        prop Xsp ++
1848        prop L
1849        prop Xsp ++
1850        prop Lu
1851        prop Xsp +
1852        prop Han
1853        prop Xsp ++
1854        prop Xan
1855        prop Xsp +
1856        prop Xsp
1857        notprop Xsp ++
1858        prop Xsp
1859        prop Xsp +
1860        prop Xps
1861        prop Xwd ++
1862        prop Xsp
1863        prop Xsp +
1864        prop Xuc
1865        Ket
1866        End
1867------------------------------------------------------------------
1868
1869/\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
1870------------------------------------------------------------------
1871        Bra
1872        prop Xwd +
1873        prop Any
1874        prop Xwd +
1875        prop L&
1876        prop Xwd +
1877        prop L
1878        prop Xwd +
1879        prop Lu
1880        prop Xwd +
1881        prop Han
1882        prop Xwd +
1883        prop Xan
1884        prop Xwd ++
1885        prop Xsp
1886        prop Xwd ++
1887        prop Xps
1888        prop Xwd +
1889        prop Xwd
1890        prop Xwd ++
1891        notprop Xwd
1892        prop Xwd +
1893        prop Xuc
1894        Ket
1895        End
1896------------------------------------------------------------------
1897
1898/\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
1899------------------------------------------------------------------
1900        Bra
1901        prop Xuc +
1902        prop Any
1903        prop Xuc +
1904        prop L&
1905        prop Xuc +
1906        prop L
1907        prop Xuc +
1908        prop Lu
1909        prop Xuc +
1910        prop Han
1911        prop Xuc +
1912        prop Xan
1913        prop Xuc +
1914        prop Xsp
1915        prop Xuc +
1916        prop Xps
1917        prop Xwd +
1918        prop Xuc
1919        prop Xuc +
1920        prop Xuc
1921        prop Xuc ++
1922        notprop Xuc
1923        Ket
1924        End
1925------------------------------------------------------------------
1926
1927/\p{N}+\p{Ll} \p{N}+\p{Nd} \p{N}+\P{Nd}/BWZx
1928------------------------------------------------------------------
1929        Bra
1930        prop N ++
1931        prop Ll
1932        prop N +
1933        prop Nd
1934        prop N +
1935        notprop Nd
1936        Ket
1937        End
1938------------------------------------------------------------------
1939
1940/\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
1941------------------------------------------------------------------
1942        Bra
1943        prop Xan +
1944        prop L
1945        prop Xan +
1946        prop N
1947        prop Xan ++
1948        prop C
1949        prop Xan +
1950        notprop L
1951        notprop Xan ++
1952        prop N
1953        prop Xan +
1954        notprop C
1955        Ket
1956        End
1957------------------------------------------------------------------
1958
1959/\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
1960------------------------------------------------------------------
1961        Bra
1962        prop L +
1963        prop Xan
1964        prop N +
1965        prop Xan
1966        prop C ++
1967        prop Xan
1968        notprop L +
1969        prop Xan
1970        prop N +
1971        prop Xan
1972        notprop C +
1973        prop Xan
1974        prop L ++
1975        notprop Xan
1976        Ket
1977        End
1978------------------------------------------------------------------
1979
1980/\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
1981------------------------------------------------------------------
1982        Bra
1983        prop Xan +
1984        prop Lu
1985        prop Xan +
1986        prop Nd
1987        prop Xan ++
1988        prop Cc
1989        prop Xan +
1990        notprop Ll
1991        notprop Xan ++
1992        prop No
1993        prop Xan +
1994        notprop Cf
1995        Ket
1996        End
1997------------------------------------------------------------------
1998
1999/\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
2000------------------------------------------------------------------
2001        Bra
2002        prop Lu +
2003        prop Xan
2004        prop Nd +
2005        prop Xan
2006        prop Cs ++
2007        prop Xan
2008        notprop Lt +
2009        prop Xan
2010        prop Nl +
2011        prop Xan
2012        notprop Cc +
2013        prop Xan
2014        prop Lt ++
2015        notprop Xan
2016        Ket
2017        End
2018------------------------------------------------------------------
2019
2020/\w+\p{P} \w+\p{Po} \w+\s \p{Xan}+\s \s+\p{Xan} \s+\w/BWZx
2021------------------------------------------------------------------
2022        Bra
2023        prop Xwd +
2024        prop P
2025        prop Xwd +
2026        prop Po
2027        prop Xwd ++
2028        prop Xsp
2029        prop Xan ++
2030        prop Xsp
2031        prop Xsp ++
2032        prop Xan
2033        prop Xsp ++
2034        prop Xwd
2035        Ket
2036        End
2037------------------------------------------------------------------
2038
2039/\w+\P{P} \W+\p{Po} \w+\S \P{Xan}+\s \s+\P{Xan} \s+\W/BWZx
2040------------------------------------------------------------------
2041        Bra
2042        prop Xwd +
2043        notprop P
2044        notprop Xwd +
2045        prop Po
2046        prop Xwd +
2047        notprop Xsp
2048        notprop Xan +
2049        prop Xsp
2050        prop Xsp +
2051        notprop Xan
2052        prop Xsp +
2053        notprop Xwd
2054        Ket
2055        End
2056------------------------------------------------------------------
2057
2058/\w+\p{Po} \w+\p{Pc} \W+\p{Po} \W+\p{Pc} \w+\P{Po} \w+\P{Pc}/BWZx
2059------------------------------------------------------------------
2060        Bra
2061        prop Xwd +
2062        prop Po
2063        prop Xwd ++
2064        prop Pc
2065        notprop Xwd +
2066        prop Po
2067        notprop Xwd +
2068        prop Pc
2069        prop Xwd +
2070        notprop Po
2071        prop Xwd +
2072        notprop Pc
2073        Ket
2074        End
2075------------------------------------------------------------------
2076
2077/\p{Nl}+\p{Xan} \P{Nl}+\p{Xan} \p{Nl}+\P{Xan} \P{Nl}+\P{Xan}/BWZx
2078------------------------------------------------------------------
2079        Bra
2080        prop Nl +
2081        prop Xan
2082        notprop Nl +
2083        prop Xan
2084        prop Nl ++
2085        notprop Xan
2086        notprop Nl +
2087        notprop Xan
2088        Ket
2089        End
2090------------------------------------------------------------------
2091
2092/\p{Xan}+\p{Nl} \P{Xan}+\p{Nl} \p{Xan}+\P{Nl} \P{Xan}+\P{Nl}/BWZx
2093------------------------------------------------------------------
2094        Bra
2095        prop Xan +
2096        prop Nl
2097        notprop Xan ++
2098        prop Nl
2099        prop Xan +
2100        notprop Nl
2101        notprop Xan +
2102        notprop Nl
2103        Ket
2104        End
2105------------------------------------------------------------------
2106
2107/\p{Xan}+\p{Nd} \P{Xan}+\p{Nd} \p{Xan}+\P{Nd} \P{Xan}+\P{Nd}/BWZx
2108------------------------------------------------------------------
2109        Bra
2110        prop Xan +
2111        prop Nd
2112        notprop Xan ++
2113        prop Nd
2114        prop Xan +
2115        notprop Nd
2116        notprop Xan +
2117        notprop Nd
2118        Ket
2119        End
2120------------------------------------------------------------------
2121
2122/-- End auto-possessification tests --/
2123
2124/\w+/8CWBZ
2125------------------------------------------------------------------
2126        Bra
2127        Callout 255 0 3
2128        prop Xwd ++
2129        Callout 255 3 0
2130        Ket
2131        End
2132------------------------------------------------------------------
2133    abcd
2134--->abcd
2135 +0 ^        \w+
2136 +3 ^   ^
2137 0: abcd
2138
2139/[\p{N}]?+/BZO
2140------------------------------------------------------------------
2141        Bra
2142        [\p{N}]?+
2143        Ket
2144        End
2145------------------------------------------------------------------
2146
2147/[\p{L}ab]{2,3}+/BZO
2148------------------------------------------------------------------
2149        Bra
2150        [ab\p{L}]{2,3}+
2151        Ket
2152        End
2153------------------------------------------------------------------
2154
2155/\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
2156------------------------------------------------------------------
2157        Bra
2158        \D+
2159        extuni
2160        \d+
2161        extuni
2162        \S+
2163        extuni
2164        \s+
2165        extuni
2166        \W+
2167        extuni
2168        \w+
2169        extuni
2170        AllAny+
2171        extuni
2172        \R+
2173        extuni
2174        \H+
2175        extuni
2176        \h+
2177        extuni
2178        \V+
2179        extuni
2180        \v+
2181        extuni
2182        a+
2183        extuni
2184        \x0a+
2185        extuni
2186        Any+
2187        extuni
2188        Ket
2189        End
2190------------------------------------------------------------------
2191
2192/.+\X/BZxs
2193------------------------------------------------------------------
2194        Bra
2195        AllAny+
2196        extuni
2197        Ket
2198        End
2199------------------------------------------------------------------
2200
2201/\X+$/BZxm
2202------------------------------------------------------------------
2203        Bra
2204        extuni+
2205     /m $
2206        Ket
2207        End
2208------------------------------------------------------------------
2209
2210/\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
2211------------------------------------------------------------------
2212        Bra
2213        extuni+
2214        \D
2215        extuni+
2216        \d
2217        extuni+
2218        \S
2219        extuni+
2220        \s
2221        extuni+
2222        \W
2223        extuni+
2224        \w
2225        extuni+
2226        Any
2227        extuni+
2228        AllAny
2229        extuni+
2230        \R
2231        extuni+
2232        \H
2233        extuni+
2234        \h
2235        extuni+
2236        \V
2237        extuni+
2238        \v
2239        extuni+
2240        extuni
2241        extuni+
2242        \Z
2243        extuni++
2244        \z
2245        extuni+
2246        $
2247        Ket
2248        End
2249------------------------------------------------------------------
2250
2251/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/8WBZ
2252------------------------------------------------------------------
2253        Bra
2254        prop Nd ++
2255        prop Xsp {0,5}+
2256        =
2257        prop Xsp *+
2258        notprop Xsp ?
2259        =
2260        prop Xwd {0,4}+
2261        notprop Xwd *+
2262        Ket
2263        End
2264------------------------------------------------------------------
2265
2266/[RST]+/8iWBZ
2267------------------------------------------------------------------
2268        Bra
2269        [R-Tr-t\x{17f}]++
2270        Ket
2271        End
2272------------------------------------------------------------------
2273
2274/[R-T]+/8iWBZ
2275------------------------------------------------------------------
2276        Bra
2277        [R-Tr-t\x{17f}]++
2278        Ket
2279        End
2280------------------------------------------------------------------
2281
2282/[Q-U]+/8iWBZ
2283------------------------------------------------------------------
2284        Bra
2285        [Q-Uq-u\x{17f}]++
2286        Ket
2287        End
2288------------------------------------------------------------------
2289
2290/^s?c/mi8I
2291Capturing subpattern count = 0
2292Options: caseless multiline utf
2293First char at start or follows newline
2294Need char = 'c' (caseless)
2295    scat
2296 0: sc
2297
2298/[\W\p{Any}]/BZ
2299------------------------------------------------------------------
2300        Bra
2301        [\x00-/:-@[-^`{-\xff\p{Any}]
2302        Ket
2303        End
2304------------------------------------------------------------------
2305    abc
2306 0: a
2307    123
2308 0: 1
2309
2310/[\W\pL]/BZ
2311------------------------------------------------------------------
2312        Bra
2313        [\x00-/:-@[-^`{-\xff\p{L}]
2314        Ket
2315        End
2316------------------------------------------------------------------
2317    abc
2318 0: a
2319    ** Failers
2320 0: *
2321    123
2322No match
2323
2324/a[[:punct:]b]/WBZ
2325------------------------------------------------------------------
2326        Bra
2327        a
2328        [b[:punct:]]
2329        Ket
2330        End
2331------------------------------------------------------------------
2332
2333/a[[:punct:]b]/8WBZ
2334------------------------------------------------------------------
2335        Bra
2336        a
2337        [b[:punct:]]
2338        Ket
2339        End
2340------------------------------------------------------------------
2341
2342/a[b[:punct:]]/8WBZ
2343------------------------------------------------------------------
2344        Bra
2345        a
2346        [b[:punct:]]
2347        Ket
2348        End
2349------------------------------------------------------------------
2350
2351/-- End of testinput7 --/
2352