chiark / gitweb /
remove quilt timestamp file
[pcre3.git] / testdata / testoutput7
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 ------------------------------------------------------------------
11 Capturing subpattern count = 0
12 No options
13 No first char
14 No need char
15
16 /[\p{^L}]/DZ
17 ------------------------------------------------------------------
18         Bra
19         [\P{L}]
20         Ket
21         End
22 ------------------------------------------------------------------
23 Capturing subpattern count = 0
24 No options
25 No first char
26 No need char
27
28 /[\P{L}]/DZ
29 ------------------------------------------------------------------
30         Bra
31         [\P{L}]
32         Ket
33         End
34 ------------------------------------------------------------------
35 Capturing subpattern count = 0
36 No options
37 No first char
38 No need char
39
40 /[\P{^L}]/DZ
41 ------------------------------------------------------------------
42         Bra
43         [\p{L}]
44         Ket
45         End
46 ------------------------------------------------------------------
47 Capturing subpattern count = 0
48 No options
49 No first char
50 No 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 ------------------------------------------------------------------
59 Capturing subpattern count = 0
60 Options: utf
61 No first char
62 No need char
63
64 /[\p{Nd}]/8DZ
65 ------------------------------------------------------------------
66         Bra
67         [\p{Nd}]
68         Ket
69         End
70 ------------------------------------------------------------------
71 Capturing subpattern count = 0
72 Options: utf
73 No first char
74 No need char
75     1234
76  0: 1
77
78 /[\p{Nd}+-]+/8DZ
79 ------------------------------------------------------------------
80         Bra
81         [+\-\p{Nd}]++
82         Ket
83         End
84 ------------------------------------------------------------------
85 Capturing subpattern count = 0
86 Options: utf
87 No first char
88 No 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
96 No match
97     abcd  
98 No match
99
100 /[\x{105}-\x{109}]/8iDZ
101 ------------------------------------------------------------------
102         Bra
103         [\x{104}-\x{109}]
104         Ket
105         End
106 ------------------------------------------------------------------
107 Capturing subpattern count = 0
108 Options: caseless utf
109 No first char
110 No 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
118 No match
119     \x{100}
120 No match
121     \x{10a} 
122 No 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 ------------------------------------------------------------------
131 Capturing subpattern count = 0
132 Options: caseless utf
133 No first char
134 No 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
154 No match
155     \x{102}
156 No match
157     Y
158 No match
159     y           
160 No 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 ------------------------------------------------------------------
169 Capturing subpattern count = 0
170 Options: caseless utf
171 No first char
172 No 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
291 No match
292     \x{09f} 
293 No 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
317 No match
318     X
319 No match
320     \x{2c2}
321 No 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
335 No match
336     \x{2028}
337 No match
338     \x{200d} 
339 No 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 
351 No match
352
353 /\P{Lu}/8i
354     1234
355  0: 1
356     ** Failers
357  0: *
358     ABC 
359 No match
360
361 /\p{Ll}/8i 
362     a
363  0: a
364     Az
365  0: z
366     ** Failers
367  0: a
368     ABC   
369 No 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
379 No match
380     \x{1d00}  
381 No match
382
383 /\p{Lu}/8i
384     A
385  0: A
386     aZ
387  0: Z
388     ** Failers
389  0: F
390     abc   
391 No 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
400 the same character differ. The first went wrong with heap frame storage; the
401 second 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
448 will match it only with UCP support, because without that it has no notion
449 of 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
479 No match
480     _ABC   
481 No 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
487 No match
488     _ABC   
489 No 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
519 No match
520     _ABC   
521 No 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
527 No match
528     _ABC   
529 No 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
537 No match
538     \x{0b} 
539 No 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
575 No match
576     \x{0b} 
577 No 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
621 No match
622     [] 
623 No 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
659 No match
660     []   
661 No 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} 
929 No match
930     \x{37e}\x{376}\x{371}\x{393}\x{394} 
931 No match
932     !\x{c0}++\x{c1}\x{c2} 
933 No match
934     !\x{c0}+++++ 
935 No 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}]++
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\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}
1122 No match
1123
1124 /(ȺȺȺ)?\1/8i
1125     ȺȺȺⱥⱥ
1126 No 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}
1140 No match
1141
1142 /(ȺȺȺ)\1/8i
1143     ȺȺȺⱥⱥ
1144 No 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
1186 No match
1187     \x{1bf4}
1188 No match
1189     
1190 /^[\p{Brahmi}]/8
1191     \x{11000}
1192  0: \x{11000}
1193     \x{1106f}
1194  0: \x{1106f}
1195     ** Failers
1196 No match
1197     \x{1104e}
1198 No match
1199     
1200 /^[\p{Mandaic}]/8
1201     \x{840}
1202  0: \x{840}
1203     \x{85e}
1204  0: \x{85e}
1205     ** Failers
1206 No match
1207     \x{85c}
1208 No match
1209     \x{85d}    
1210 No 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
1234 No match
1235     aAz
1236 No match
1237
1238 /(?<=ab\Cde)X/8
1239 Failed: \C not allowed in lookbehind assertion at offset 10
1240
1241 /\X/
1242     a\P
1243  0: a
1244     a\P\P
1245 Partial 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
1257 Partial match: aa
1258
1259 /\X+a/
1260     a\P
1261 Partial match: a
1262     aa\P
1263  0: aa
1264     aa\P\P
1265 Partial match: aa
1266
1267 /\X+?a/
1268     a\P
1269 Partial match: a
1270     ab\P
1271 Partial 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 
1293 Partial match: A
1294     A\x{300}\x{301}\P
1295  0: A\x{300}\x{301}
1296     A\x{300}\x{301}\P\P  
1297 Partial match: A\x{300}\x{301}
1298     A\x{301}\P
1299  0: A\x{301}
1300     A\x{301}\P\P  
1301 Partial match: A\x{301}
1302     
1303 /^\X{2,3}/8
1304     A\P
1305 Partial match: A
1306     A\P\P 
1307 Partial match: A
1308     AA\P
1309  0: AA
1310     AA\P\P  
1311 Partial match: AA
1312     A\x{300}\x{301}\P
1313 Partial match: A\x{300}\x{301}
1314     A\x{300}\x{301}\P\P  
1315 Partial 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  
1319 Partial 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  
1325 Partial 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  
1329 Partial 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  
1335 Partial match: AA
1336
1337 /^\X+?Z/8
1338     AA\P
1339 Partial match: AA
1340     AA\P\P 
1341 Partial 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 ------------------------------------------------------------------
1352 Capturing subpattern count = 0
1353 Options: caseless utf
1354 First char = 'A' (caseless)
1355 Need 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 ------------------------------------------------------------------
1365 Capturing subpattern count = 0
1366 Options: caseless utf
1367 No first char
1368 Need 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
1451 No match
1452     \x{3a3}\x{3c3}\x{3c2}\x{3a3}\x{3c3}\x{3c2}
1453 No 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
1492 No match
1493
1494 /is+t/8i
1495     iSs\x{17f}t
1496  0: iSs\x{17f}t
1497     ikt
1498 No match
1499
1500 /is+?t/8i
1501     ikt
1502 No match
1503
1504 /is?t/8i
1505     ikt
1506 No match
1507
1508 /is{2}t/8i
1509     iskt
1510 No 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
1524 No match
1525     abc     
1526 No match
1527
1528 /^\p{Xuc}+/8
1529     $@`\x{a0}\x{1234}\x{e000}**
1530  0: $@`\x{a0}\x{1234}\x{e000}
1531     ** Failers
1532 No match
1533     \x{9f}
1534 No match
1535
1536 /^\p{Xuc}+?/8
1537     $@`\x{a0}\x{1234}\x{e000}**
1538  0: $
1539     ** Failers
1540 No match
1541     \x{9f}
1542 No match
1543
1544 /^\p{Xuc}+?\*/8
1545     $@`\x{a0}\x{1234}\x{e000}**
1546  0: $@`\x{a0}\x{1234}\x{e000}*
1547     ** Failers
1548 No match
1549     \x{9f}
1550 No match
1551
1552 /^\p{Xuc}++/8
1553     $@`\x{a0}\x{1234}\x{e000}**
1554  0: $@`\x{a0}\x{1234}\x{e000}
1555     ** Failers
1556 No match
1557     \x{9f}
1558 No match
1559
1560 /^\p{Xuc}{3,5}/8
1561     $@`\x{a0}\x{1234}\x{e000}**
1562  0: $@`\x{a0}\x{1234}
1563     ** Failers
1564 No match
1565     \x{9f}
1566 No match
1567
1568 /^\p{Xuc}{3,5}?/8
1569     $@`\x{a0}\x{1234}\x{e000}**
1570  0: $@`
1571     ** Failers
1572 No match
1573     \x{9f}
1574 No match
1575
1576 /^[\p{Xuc}]/8
1577     $@`\x{a0}\x{1234}\x{e000}**
1578  0: $
1579     ** Failers
1580 No match
1581     \x{9f}
1582 No match
1583
1584 /^[\p{Xuc}]+/8
1585     $@`\x{a0}\x{1234}\x{e000}**
1586  0: $@`\x{a0}\x{1234}\x{e000}
1587     ** Failers
1588 No match
1589     \x{9f}
1590 No match
1591
1592 /^\P{Xuc}/8
1593     abc
1594  0: a
1595     ** Failers
1596  0: *
1597     $abc
1598 No match
1599     @abc
1600 No match
1601     `abc
1602 No match
1603     \x{1234}abc
1604 No match
1605
1606 /^[\P{Xuc}]/8
1607     abc
1608  0: a
1609     ** Failers
1610  0: *
1611     $abc
1612 No match
1613     @abc
1614 No match
1615     `abc
1616 No match
1617     \x{1234}abc
1618 No 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 /-- End of testinput7 --/