new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / external / pcre2-10.32 / testdata / testinput7
1 # This set of tests checks UTF and Unicode property support with the DFA
2 # matching functionality of pcre_dfa_match(). A default subject modifier is
3 # used to force DFA matching for all tests.
4
5 #subject dfa
6 #newline_default LF any anyCRLF
7
8 /\x{100}ab/utf
9   \x{100}ab
10   
11 /a\x{100}*b/utf
12     ab
13     a\x{100}b  
14     a\x{100}\x{100}b  
15     
16 /a\x{100}+b/utf
17     a\x{100}b  
18     a\x{100}\x{100}b  
19 \= Expect no match 
20     ab
21      
22 /\bX/utf
23     Xoanon
24     +Xoanon
25     \x{300}Xoanon 
26 \= Expect no match 
27     YXoanon  
28     
29 /\BX/utf
30     YXoanon
31 \= Expect no match
32     Xoanon
33     +Xoanon    
34     \x{300}Xoanon 
35
36 /X\b/utf
37     X+oanon
38     ZX\x{300}oanon 
39     FAX 
40 \= Expect no match 
41     Xoanon  
42     
43 /X\B/utf
44     Xoanon  
45 \= Expect no match
46     X+oanon
47     ZX\x{300}oanon 
48     FAX 
49     
50 /[^a]/utf
51     abcd
52     a\x{100}   
53
54 /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf
55     ab99
56     \x{123}\x{123}45
57     \x{400}\x{401}\x{402}6  
58 \= Expect no match
59     d99
60     \x{123}\x{122}4   
61     \x{400}\x{403}6  
62     \x{400}\x{401}\x{402}\x{402}6  
63
64 /a.b/utf
65     acb
66     a\x7fb
67     a\x{100}b 
68 \= Expect no match
69     a\nb  
70
71 /a(.{3})b/utf
72     a\x{4000}xyb 
73     a\x{4000}\x7fyb 
74     a\x{4000}\x{100}yb 
75 \= Expect no match
76     a\x{4000}b 
77     ac\ncb 
78
79 /a(.*?)(.)/
80     a\xc0\x88b
81
82 /a(.*?)(.)/utf
83     a\x{100}b
84
85 /a(.*)(.)/
86     a\xc0\x88b
87
88 /a(.*)(.)/utf
89     a\x{100}b
90
91 /a(.)(.)/
92     a\xc0\x92bcd
93
94 /a(.)(.)/utf
95     a\x{240}bcd
96
97 /a(.?)(.)/
98     a\xc0\x92bcd
99
100 /a(.?)(.)/utf
101     a\x{240}bcd
102
103 /a(.??)(.)/
104     a\xc0\x92bcd
105
106 /a(.??)(.)/utf
107     a\x{240}bcd
108
109 /a(.{3})b/utf
110     a\x{1234}xyb 
111     a\x{1234}\x{4321}yb 
112     a\x{1234}\x{4321}\x{3412}b 
113 \= Expect no match
114     a\x{1234}b 
115     ac\ncb 
116
117 /a(.{3,})b/utf
118     a\x{1234}xyb 
119     a\x{1234}\x{4321}yb 
120     a\x{1234}\x{4321}\x{3412}b 
121     axxxxbcdefghijb 
122     a\x{1234}\x{4321}\x{3412}\x{3421}b 
123 \= Expect no match
124     a\x{1234}b 
125
126 /a(.{3,}?)b/utf
127     a\x{1234}xyb 
128     a\x{1234}\x{4321}yb 
129     a\x{1234}\x{4321}\x{3412}b 
130     axxxxbcdefghijb 
131     a\x{1234}\x{4321}\x{3412}\x{3421}b 
132 \= Expect no match
133     a\x{1234}b 
134
135 /a(.{3,5})b/utf
136     a\x{1234}xyb 
137     a\x{1234}\x{4321}yb 
138     a\x{1234}\x{4321}\x{3412}b 
139     axxxxbcdefghijb 
140     a\x{1234}\x{4321}\x{3412}\x{3421}b 
141     axbxxbcdefghijb 
142     axxxxxbcdefghijb 
143 \= Expect no match
144     a\x{1234}b 
145     axxxxxxbcdefghijb 
146
147 /a(.{3,5}?)b/utf
148     a\x{1234}xyb 
149     a\x{1234}\x{4321}yb 
150     a\x{1234}\x{4321}\x{3412}b 
151     axxxxbcdefghijb 
152     a\x{1234}\x{4321}\x{3412}\x{3421}b 
153     axbxxbcdefghijb 
154     axxxxxbcdefghijb 
155 \= Expect no match
156     a\x{1234}b 
157     axxxxxxbcdefghijb 
158
159 /^[a\x{c0}]/utf
160 \= Expect no match
161     \x{100}
162
163 /(?<=aXb)cd/utf
164     aXbcd
165
166 /(?<=a\x{100}b)cd/utf
167     a\x{100}bcd
168
169 /(?<=a\x{100000}b)cd/utf
170     a\x{100000}bcd
171     
172 /(?:\x{100}){3}b/utf
173     \x{100}\x{100}\x{100}b
174 \= Expect no match 
175     \x{100}\x{100}b
176
177 /\x{ab}/utf
178     \x{ab} 
179     \xc2\xab
180 \= Expect no match 
181     \x00{ab}
182
183 /(?<=(.))X/utf
184     WXYZ
185     \x{256}XYZ 
186 \= Expect no match
187     XYZ 
188
189 /[^a]+/g,utf
190     bcd
191     \x{100}aY\x{256}Z 
192     
193 /^[^a]{2}/utf
194     \x{100}bc
195  
196 /^[^a]{2,}/utf
197     \x{100}bcAa
198
199 /^[^a]{2,}?/utf
200     \x{100}bca
201
202 /[^a]+/gi,utf
203     bcd
204     \x{100}aY\x{256}Z 
205     
206 /^[^a]{2}/i,utf
207     \x{100}bc
208  
209 /^[^a]{2,}/i,utf
210     \x{100}bcAa
211
212 /^[^a]{2,}?/i,utf
213     \x{100}bca
214
215 /\x{100}{0,0}/utf
216     abcd
217  
218 /\x{100}?/utf
219     abcd
220     \x{100}\x{100} 
221
222 /\x{100}{0,3}/utf
223     \x{100}\x{100} 
224     \x{100}\x{100}\x{100}\x{100} 
225     
226 /\x{100}*/utf
227     abce
228     \x{100}\x{100}\x{100}\x{100} 
229
230 /\x{100}{1,1}/utf
231     abcd\x{100}\x{100}\x{100}\x{100} 
232
233 /\x{100}{1,3}/utf
234     abcd\x{100}\x{100}\x{100}\x{100} 
235
236 /\x{100}+/utf
237     abcd\x{100}\x{100}\x{100}\x{100} 
238
239 /\x{100}{3}/utf
240     abcd\x{100}\x{100}\x{100}XX
241
242 /\x{100}{3,5}/utf
243     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
244
245 /\x{100}{3,}/utf,no_auto_possess
246     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
247
248 /(?<=a\x{100}{2}b)X/utf
249     Xyyya\x{100}\x{100}bXzzz
250
251 /\D*/utf,no_auto_possess
252   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
253
254 /\D*/utf,no_auto_possess
255   \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
256
257 /\D/utf
258     1X2
259     1\x{100}2 
260   
261 />\S/utf
262     > >X Y
263     > >\x{100} Y
264   
265 /\d/utf
266     \x{100}3
267     
268 /\s/utf
269     \x{100} X
270     
271 /\D+/utf
272     12abcd34
273 \= Expect no match
274     1234  
275
276 /\D{2,3}/utf
277     12abcd34
278     12ab34
279 \= Expect no match  
280     1234
281     12a34  
282
283 /\D{2,3}?/utf
284     12abcd34
285     12ab34
286 \= Expect no match  
287     1234
288     12a34  
289
290 /\d+/utf
291     12abcd34
292
293 /\d{2,3}/utf
294     12abcd34
295     1234abcd
296 \= Expect no match  
297     1.4 
298
299 /\d{2,3}?/utf
300     12abcd34
301     1234abcd
302 \= Expect no match  
303     1.4 
304
305 /\S+/utf
306     12abcd34
307 \= Expect no match
308     \    \ 
309
310 /\S{2,3}/utf
311     12abcd34
312     1234abcd
313 \= Expect no match
314     \     \  
315
316 /\S{2,3}?/utf
317     12abcd34
318     1234abcd
319 \= Expect no match
320     \     \  
321
322 />\s+</utf
323     12>      <34
324
325 />\s{2,3}</utf
326     ab>  <cd
327     ab>   <ce
328 \= Expect no match
329     ab>    <cd 
330
331 />\s{2,3}?</utf
332     ab>  <cd
333     ab>   <ce
334 \= Expect no match
335     ab>    <cd 
336
337 /\w+/utf
338     12      34
339 \= Expect no match
340     +++=*! 
341
342 /\w{2,3}/utf
343     ab  cd
344     abcd ce
345 \= Expect no match
346     a.b.c
347
348 /\w{2,3}?/utf
349     ab  cd
350     abcd ce
351 \= Expect no match
352     a.b.c
353
354 /\W+/utf
355     12====34
356 \= Expect no match
357     abcd 
358
359 /\W{2,3}/utf
360     ab====cd
361     ab==cd
362 \= Expect no match
363     a.b.c
364
365 /\W{2,3}?/utf
366     ab====cd
367     ab==cd
368 \= Expect no match
369     a.b.c
370
371 /[\x{100}]/utf
372     \x{100}
373     Z\x{100}
374     \x{100}Z
375
376 /[Z\x{100}]/utf
377     Z\x{100}
378     \x{100}
379     \x{100}Z
380
381 /[\x{100}\x{200}]/utf
382    ab\x{100}cd
383    ab\x{200}cd
384
385 /[\x{100}-\x{200}]/utf
386    ab\x{100}cd
387    ab\x{200}cd
388    ab\x{111}cd 
389
390 /[z-\x{200}]/utf
391    ab\x{100}cd
392    ab\x{200}cd
393    ab\x{111}cd 
394    abzcd
395    ab|cd  
396
397 /[Q\x{100}\x{200}]/utf
398    ab\x{100}cd
399    ab\x{200}cd
400    Q? 
401
402 /[Q\x{100}-\x{200}]/utf
403    ab\x{100}cd
404    ab\x{200}cd
405    ab\x{111}cd 
406    Q? 
407
408 /[Qz-\x{200}]/utf
409    ab\x{100}cd
410    ab\x{200}cd
411    ab\x{111}cd 
412    abzcd
413    ab|cd  
414    Q? 
415
416 /[\x{100}\x{200}]{1,3}/utf
417    ab\x{100}cd
418    ab\x{200}cd
419    ab\x{200}\x{100}\x{200}\x{100}cd
420
421 /[\x{100}\x{200}]{1,3}?/utf
422    ab\x{100}cd
423    ab\x{200}cd
424    ab\x{200}\x{100}\x{200}\x{100}cd
425
426 /[Q\x{100}\x{200}]{1,3}/utf
427    ab\x{100}cd
428    ab\x{200}cd
429    ab\x{200}\x{100}\x{200}\x{100}cd
430
431 /[Q\x{100}\x{200}]{1,3}?/utf
432    ab\x{100}cd
433    ab\x{200}cd
434    ab\x{200}\x{100}\x{200}\x{100}cd
435
436 /(?<=[\x{100}\x{200}])X/utf
437     abc\x{200}X
438     abc\x{100}X 
439 \= Expect no match
440     X  
441
442 /(?<=[Q\x{100}\x{200}])X/utf
443     abc\x{200}X
444     abc\x{100}X 
445     abQX 
446 \= Expect no match
447     X  
448
449 /(?<=[\x{100}\x{200}]{3})X/utf
450     abc\x{100}\x{200}\x{100}X
451 \= Expect no match
452     abc\x{200}X
453     X  
454
455 /[^\x{100}\x{200}]X/utf
456     AX
457     \x{150}X
458     \x{500}X 
459 \= Expect no match
460     \x{100}X
461     \x{200}X   
462
463 /[^Q\x{100}\x{200}]X/utf
464     AX
465     \x{150}X
466     \x{500}X 
467 \= Expect no match
468     \x{100}X
469     \x{200}X   
470     QX 
471
472 /[^\x{100}-\x{200}]X/utf
473     AX
474     \x{500}X 
475 \= Expect no match
476     \x{100}X
477     \x{150}X
478     \x{200}X   
479
480 /[z-\x{100}]/i,utf
481     z
482     Z 
483     \x{100}
484 \= Expect no match
485     \x{102}
486     y    
487
488 /[\xFF]/
489     >\xff<
490
491 /[\xff]/utf
492     >\x{ff}<
493
494 /[^\xFF]/
495     XYZ
496
497 /[^\xff]/utf
498     XYZ
499     \x{123} 
500
501 /^[ac]*b/utf
502 \= Expect no match
503     xb
504
505 /^[ac\x{100}]*b/utf
506 \= Expect no match
507     xb
508
509 /^[^x]*b/i,utf
510 \= Expect no match
511     xb
512
513 /^[^x]*b/utf
514 \= Expect no match
515     xb
516   
517 /^\d*b/utf
518 \= Expect no match
519     xb 
520
521 /(|a)/g,utf
522     catac
523     a\x{256}a 
524
525 /^\x{85}$/i,utf
526     \x{85}
527
528 /^abc./gmx,newline=any,utf
529     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
530
531 /abc.$/gmx,newline=any,utf
532     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
533
534 /^a\Rb/bsr=unicode,utf
535     a\nb
536     a\rb
537     a\r\nb
538     a\x0bb
539     a\x0cb
540     a\x{85}b   
541     a\x{2028}b 
542     a\x{2029}b 
543 \= Expect no match
544     a\n\rb    
545
546 /^a\R*b/bsr=unicode,utf
547     ab
548     a\nb
549     a\rb
550     a\r\nb
551     a\x0bb
552     a\x0c\x{2028}\x{2029}b
553     a\x{85}b   
554     a\n\rb    
555     a\n\r\x{85}\x0cb 
556
557 /^a\R+b/bsr=unicode,utf
558     a\nb
559     a\rb
560     a\r\nb
561     a\x0bb
562     a\x0c\x{2028}\x{2029}b
563     a\x{85}b   
564     a\n\rb    
565     a\n\r\x{85}\x0cb 
566 \= Expect no match
567     ab  
568
569 /^a\R{1,3}b/bsr=unicode,utf
570     a\nb
571     a\n\rb
572     a\n\r\x{85}b
573     a\r\n\r\nb 
574     a\r\n\r\n\r\nb 
575     a\n\r\n\rb
576     a\n\n\r\nb 
577 \= Expect no match
578     a\n\n\n\rb
579     a\r
580
581 /\h+\V?\v{3,4}/utf,no_auto_possess
582     \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
583
584 /\V?\v{3,4}/utf,no_auto_possess
585     \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
586
587 /\h+\V?\v{3,4}/utf,no_auto_possess
588     >\x09\x20\x{a0}X\x0a\x0a\x0a<
589
590 /\V?\v{3,4}/utf,no_auto_possess
591     >\x09\x20\x{a0}X\x0a\x0a\x0a<
592
593 /\H\h\V\v/utf
594     X X\x0a
595     X\x09X\x0b
596 \= Expect no match
597     \x{a0} X\x0a   
598     
599 /\H*\h+\V?\v{3,4}/utf,no_auto_possess
600     \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
601     \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
602     \x09\x20\x{a0}\x0a\x0b\x0c
603 \= Expect no match 
604     \x09\x20\x{a0}\x0a\x0b
605      
606 /\H\h\V\v/utf
607     \x{3001}\x{3000}\x{2030}\x{2028}
608     X\x{180e}X\x{85}
609 \= Expect no match
610     \x{2009} X\x0a   
611     
612 /\H*\h+\V?\v{3,4}/utf,no_auto_possess
613     \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
614     \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
615     \x09\x20\x{202f}\x0a\x0b\x0c
616 \= Expect no match 
617     \x09\x{200a}\x{a0}\x{2028}\x0b
618      
619 /a\Rb/I,bsr=anycrlf,utf
620     a\rb
621     a\nb
622     a\r\nb
623 \= Expect no match
624     a\x{85}b
625     a\x0bb     
626
627 /a\Rb/I,bsr=unicode,utf
628     a\rb
629     a\nb
630     a\r\nb
631     a\x{85}b
632     a\x0bb     
633     
634 /a\R?b/I,bsr=anycrlf,utf
635     a\rb
636     a\nb
637     a\r\nb
638 \= Expect no match
639     a\x{85}b
640     a\x0bb     
641
642 /a\R?b/I,bsr=unicode,utf
643     a\rb
644     a\nb
645     a\r\nb
646     a\x{85}b
647     a\x0bb     
648  
649 /X/newline=any,utf,firstline
650     A\x{1ec5}ABCXYZ
651
652 /abcd*/utf
653     xxxxabcd\=ps
654     xxxxabcd\=ph
655
656 /abcd*/i,utf
657     xxxxabcd\=ps
658     xxxxabcd\=ph
659     XXXXABCD\=ps
660     XXXXABCD\=ph
661
662 /abc\d*/utf
663     xxxxabc1\=ps
664     xxxxabc1\=ph
665
666 /abc[de]*/utf
667     xxxxabcde\=ps
668     xxxxabcde\=ph
669
670 /\bthe cat\b/utf
671     the cat\=ps
672     the cat\=ph
673
674 /./newline=crlf,utf
675     \r\=ps
676     \r\=ph
677   
678 /.{2,3}/newline=crlf,utf
679     \r\=ps
680     \r\=ph
681     \r\r\=ps
682     \r\r\=ph
683     \r\r\r\=ps
684     \r\r\r\=ph
685
686 /.{2,3}?/newline=crlf,utf
687     \r\=ps
688     \r\=ph
689     \r\r\=ps
690     \r\r\=ph
691     \r\r\r\=ps
692     \r\r\r\=ph
693
694 /[^\x{100}]/utf
695     \x{100}\x{101}X
696
697 /[^\x{100}]+/utf
698     \x{100}\x{101}X
699
700 /\pL\P{Nd}/utf
701     AB
702 \= Expect no match
703     A0
704     00
705
706 /\X./utf
707     AB
708     A\x{300}BC
709     A\x{300}\x{301}\x{302}BC
710 \= Expect no match
711     \x{300}
712
713 /\X\X/utf
714     ABC
715     A\x{300}B\x{300}\x{301}C
716     A\x{300}\x{301}\x{302}BC
717 \= Expect no match
718     \x{300}
719
720 /^\pL+/utf
721     abcd
722     a
723
724 /^\PL+/utf
725     1234
726     =
727 \= Expect no match
728     abcd
729
730 /^\X+/utf
731     abcdA\x{300}\x{301}\x{302}
732     A\x{300}\x{301}\x{302}
733     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
734     a
735     \x{300}\x{301}\x{302}
736
737 /\X?abc/utf
738     abc
739     A\x{300}abc
740     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
741     \x{300}abc
742
743 /^\X?abc/utf
744     abc
745     A\x{300}abc
746     \x{300}abc
747 \= Expect no match
748     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
749
750 /\X*abc/utf
751     abc
752     A\x{300}abc
753     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
754     \x{300}abc
755
756 /^\X*abc/utf
757     abc
758     A\x{300}abc
759     A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
760     \x{300}abc
761
762 /^\pL?=./utf
763     A=b
764     =c
765 \= Expect no match
766     1=2
767     AAAA=b
768
769 /^\pL*=./utf
770     AAAA=b
771     =c
772 \= Expect no match
773     1=2
774
775 /^\X{2,3}X/utf
776     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
777     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
778 \= Expect no match
779     X
780     A\x{300}\x{301}\x{302}X
781     A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
782
783 /^\pC\pL\pM\pN\pP\pS\pZ</utf
784     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
785     \np\x{300}9!\$ <
786 \= Expect no match
787     ap\x{300}9!\$ <
788   
789 /^\PC/utf
790     X
791 \= Expect no match
792     \x7f
793   
794 /^\PL/utf
795     9
796 \= Expect no match
797     \x{c0}
798   
799 /^\PM/utf
800     X
801 \= Expect no match
802     \x{30f}
803   
804 /^\PN/utf
805     X
806 \= Expect no match
807     \x{660}
808   
809 /^\PP/utf
810     X
811 \= Expect no match
812     \x{66c}
813   
814 /^\PS/utf
815     X
816 \= Expect no match
817     \x{f01}
818   
819 /^\PZ/utf
820     X
821 \= Expect no match
822     \x{1680}
823     
824 /^\p{Cc}/utf
825     \x{017}
826     \x{09f}
827 \= Expect no match
828     \x{0600}
829   
830 /^\p{Cf}/utf
831     \x{601}
832     \x{180e}
833     \x{061c}
834     \x{2066}
835     \x{2067}
836     \x{2068}
837     \x{2069}
838 \= Expect no match
839     \x{09f}
840   
841 /^\p{Cn}/utf
842 \= Expect no match
843     \x{09f}
844   
845 /^\p{Co}/utf
846     \x{f8ff}
847 \= Expect no match
848     \x{09f}
849   
850 /^\p{Cs}/utf
851     \x{dfff}\=no_utf_check
852 \= Expect no match
853     \x{09f}
854   
855 /^\p{Ll}/utf
856     a
857 \= Expect no match
858     Z
859     \x{e000}
860   
861 /^\p{Lm}/utf
862     \x{2b0}
863 \= Expect no match
864     a
865   
866 /^\p{Lo}/utf
867     \x{1bb}
868 \= Expect no match
869     a
870     \x{2b0}
871   
872 /^\p{Lt}/utf
873     \x{1c5}
874 \= Expect no match
875     a
876     \x{2b0}
877   
878 /^\p{Lu}/utf
879     A
880 \= Expect no match
881     \x{2b0}
882   
883 /^\p{Mc}/utf
884     \x{903}
885 \= Expect no match
886     X
887     \x{300}
888        
889 /^\p{Me}/utf
890     \x{488}
891 \= Expect no match
892     X
893     \x{903}
894     \x{300}
895   
896 /^\p{Mn}/utf
897     \x{300}
898     \x{1a1b}
899 \= Expect no match
900     X
901     \x{903}
902   
903 /^\p{Nd}+/utf,no_auto_possess
904     0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
905     \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
906     \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
907 \= Expect no match
908     X
909   
910 /^\p{Nl}/utf
911     \x{16ee}
912 \= Expect no match
913     X
914     \x{966}
915   
916 /^\p{No}/utf
917     \x{b2}
918     \x{b3}
919 \= Expect no match
920     X
921     \x{16ee}
922   
923 /^\p{Pc}/utf
924     \x5f
925     \x{203f}
926 \= Expect no match
927     X
928     -
929     \x{58a}
930   
931 /^\p{Pd}/utf
932     -
933     \x{58a}
934 \= Expect no match
935     X
936     \x{203f}
937   
938 /^\p{Pe}/utf
939     )
940     ]
941     }
942     \x{f3b}
943     \x{2309}
944     \x{230b}
945 \= Expect no match
946     X
947     \x{203f}
948     (
949     [
950     {
951     \x{f3c}
952
953 /^\p{Pf}/utf
954     \x{bb}
955     \x{2019}
956 \= Expect no match
957     X
958     \x{203f}
959   
960 /^\p{Pi}/utf
961     \x{ab}
962     \x{2018}
963 \= Expect no match
964     X
965     \x{203f}
966   
967 /^\p{Po}/utf
968     !
969     \x{37e}
970 \= Expect no match
971     X
972     \x{203f}
973   
974 /^\p{Ps}/utf
975     (
976     [
977     {
978     \x{f3c}
979     \x{2308}
980     \x{230a}
981 \= Expect no match
982     X
983     )
984     ]
985     }
986     \x{f3b}
987   
988 /^\p{Sc}+/utf
989     $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
990     \x{9f2}
991 \= Expect no match
992     X
993     \x{2c2}
994   
995 /^\p{Sk}/utf
996     \x{2c2}
997 \= Expect no match
998     X
999     \x{9f2}
1000   
1001 /^\p{Sm}+/utf
1002     +<|~\x{ac}\x{2044}
1003 \= Expect no match
1004     X
1005     \x{9f2}
1006   
1007 /^\p{So}/utf
1008     \x{a6}
1009     \x{482}
1010 \= Expect no match
1011     X
1012     \x{9f2}
1013   
1014 /^\p{Zl}/utf
1015     \x{2028}
1016 \= Expect no match
1017     X
1018     \x{2029}
1019   
1020 /^\p{Zp}/utf
1021     \x{2029}
1022 \= Expect no match
1023     X
1024     \x{2028}
1025   
1026 /^\p{Zs}/utf
1027     \ \
1028     \x{a0}
1029     \x{1680}
1030     \x{2000}
1031     \x{2001}
1032 \= Expect no match
1033     \x{2028}
1034     \x{200d}
1035   
1036 /\p{Nd}+(..)/utf
1037       \x{660}\x{661}\x{662}ABC
1038   
1039 /\p{Nd}+?(..)/utf
1040       \x{660}\x{661}\x{662}ABC
1041   
1042 /\p{Nd}{2,}(..)/utf
1043       \x{660}\x{661}\x{662}ABC
1044   
1045 /\p{Nd}{2,}?(..)/utf
1046       \x{660}\x{661}\x{662}ABC
1047   
1048 /\p{Nd}*(..)/utf
1049       \x{660}\x{661}\x{662}ABC
1050   
1051 /\p{Nd}*?(..)/utf
1052       \x{660}\x{661}\x{662}ABC
1053   
1054 /\p{Nd}{2}(..)/utf
1055       \x{660}\x{661}\x{662}ABC
1056   
1057 /\p{Nd}{2,3}(..)/utf
1058       \x{660}\x{661}\x{662}ABC
1059   
1060 /\p{Nd}{2,3}?(..)/utf
1061       \x{660}\x{661}\x{662}ABC
1062   
1063 /\p{Nd}?(..)/utf
1064       \x{660}\x{661}\x{662}ABC
1065   
1066 /\p{Nd}??(..)/utf
1067       \x{660}\x{661}\x{662}ABC
1068   
1069 /\p{Nd}*+(..)/utf
1070       \x{660}\x{661}\x{662}ABC
1071   
1072 /\p{Nd}*+(...)/utf
1073       \x{660}\x{661}\x{662}ABC
1074   
1075 /\p{Nd}*+(....)/utf
1076 \= Expect no match
1077       \x{660}\x{661}\x{662}ABC
1078   
1079 /\p{Lu}/i,utf
1080     A
1081     a\x{10a0}B
1082 \= Expect no match
1083     a
1084     \x{1d00}
1085
1086 /\p{^Lu}/i,utf
1087     1234
1088 \= Expect no match
1089     ABC
1090
1091 /\P{Lu}/i,utf
1092     1234
1093 \= Expect no match
1094     ABC
1095
1096 /(?<=A\p{Nd})XYZ/utf
1097     A2XYZ
1098     123A5XYZPQR
1099     ABA\x{660}XYZpqr
1100 \= Expect no match
1101     AXYZ
1102     XYZ
1103     
1104 /(?<!\pL)XYZ/utf
1105     1XYZ
1106     AB=XYZ..
1107     XYZ
1108 \= Expect no match
1109     WXYZ
1110
1111 /[\p{Nd}]/utf
1112     1234
1113
1114 /[\p{Nd}+-]+/utf
1115     1234
1116     12-34
1117     12+\x{661}-34
1118 \= Expect no match
1119     abcd
1120
1121 /[\P{Nd}]+/utf
1122     abcd
1123 \= Expect no match
1124     1234
1125
1126 /\D+/utf,no_auto_possess
1127     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1128 \= Expect no match
1129     11111111111111111111111111111111111111111111111111111111111111111111111
1130      
1131 /\P{Nd}+/utf,no_auto_possess
1132     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1133 \= Expect no match
1134     11111111111111111111111111111111111111111111111111111111111111111111111
1135
1136 /[\D]+/utf,no_auto_possess
1137     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1138 \= Expect no match
1139     11111111111111111111111111111111111111111111111111111111111111111111111
1140
1141 /[\P{Nd}]+/utf,no_auto_possess
1142     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1143 \= Expect no match
1144     11111111111111111111111111111111111111111111111111111111111111111111111
1145
1146 /[\D\P{Nd}]+/utf,no_auto_possess
1147     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1148 \= Expect no match
1149     11111111111111111111111111111111111111111111111111111111111111111111111
1150
1151 /\pL/utf
1152     a
1153     A
1154
1155 /\pL/i,utf
1156     a
1157     A
1158     
1159 /\p{Lu}/utf
1160     A
1161     aZ
1162 \= Expect no match
1163     abc
1164
1165 /\p{Lu}/i,utf
1166     A
1167     aZ
1168 \= Expect no match
1169     abc
1170
1171 /\p{Ll}/utf
1172     a
1173     Az
1174 \= Expect no match
1175     ABC
1176
1177 /\p{Ll}/i,utf
1178     a
1179     Az
1180 \= Expect no match
1181     ABC
1182
1183 /^\x{c0}$/i,utf
1184     \x{c0}
1185     \x{e0}
1186
1187 /^\x{e0}$/i,utf
1188     \x{c0}
1189     \x{e0}
1190
1191 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
1192     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1193 \= Expect no match
1194     a\x{391}\x{10427}\x{ff3a}\x{1fb0}
1195     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1196     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1197     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1198     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1199
1200 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
1201     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1202     a\x{391}\x{10427}\x{ff3a}\x{1fb0}
1203     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1204     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1205     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1206     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1207
1208 /\x{391}+/i,utf
1209     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
1210
1211 /\x{391}{3,5}(.)/i,utf
1212     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1213
1214 /\x{391}{3,5}?(.)/i,utf
1215     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1216
1217 /[\x{391}\x{ff3a}]/i,utf
1218     \x{391}
1219     \x{ff3a}
1220     \x{3b1}
1221     \x{ff5a}
1222     
1223 /[\x{c0}\x{391}]/i,utf
1224     \x{c0}
1225     \x{e0}
1226
1227 /[\x{105}-\x{109}]/i,utf
1228     \x{104}
1229     \x{105}
1230     \x{109}
1231 \= Expect no match
1232     \x{100}
1233     \x{10a}
1234     
1235 /[z-\x{100}]/i,utf
1236     Z
1237     z
1238     \x{39c}
1239     \x{178}
1240     |
1241     \x{80}
1242     \x{ff}
1243     \x{100}
1244     \x{101}
1245 \= Expect no match
1246     \x{102}
1247     Y
1248     y
1249
1250 /[z-\x{100}]/i,utf
1251
1252 /^\X/utf
1253     A
1254     A\x{300}BC
1255     A\x{300}\x{301}\x{302}BC
1256     \x{300}
1257
1258 /^(\X*)C/utf
1259     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1260     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1261
1262 /^(\X*?)C/utf
1263     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1264     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1265
1266 /^(\X*)(.)/utf
1267     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1268     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1269
1270 /^(\X*?)(.)/utf
1271     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1272     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1273
1274 /^\X(.)/utf
1275 \= Expect no match
1276     A\x{300}\x{301}\x{302}
1277
1278 /^\X{2,3}(.)/utf
1279     A\x{300}\x{301}B\x{300}X
1280     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1281     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1282     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1283     
1284 /^\X{2,3}?(.)/utf
1285     A\x{300}\x{301}B\x{300}X
1286     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1287     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1288     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1289
1290 /^\pN{2,3}X/
1291     12X
1292     123X
1293 \= Expect no match
1294     X
1295     1X
1296     1234X
1297
1298 /\x{100}/i,utf
1299     \x{100}
1300     \x{101}
1301     
1302 /^\p{Han}+/utf
1303     \x{2e81}\x{3007}\x{2f804}\x{31a0}
1304 \= Expect no match
1305     \x{2e7f}
1306
1307 /^\P{Katakana}+/utf
1308     \x{3105}
1309 \= Expect no match
1310     \x{30ff}
1311
1312 /^[\p{Arabic}]/utf
1313     \x{06e9}
1314     \x{060b}
1315 \= Expect no match
1316     X\x{06e9}
1317
1318 /^[\P{Yi}]/utf
1319     \x{2f800}
1320 \= Expect no match
1321     \x{a014}
1322     \x{a4c6}
1323
1324 /^\p{Any}X/utf
1325     AXYZ
1326     \x{1234}XYZ
1327 \= Expect no match
1328     X
1329     
1330 /^\P{Any}X/utf
1331 \= Expect no match
1332     AX
1333     
1334 /^\p{Any}?X/utf
1335     XYZ
1336     AXYZ
1337     \x{1234}XYZ
1338 \= Expect no match
1339     ABXYZ
1340
1341 /^\P{Any}?X/utf
1342     XYZ
1343 \= Expect no match
1344     AXYZ
1345     \x{1234}XYZ
1346     ABXYZ
1347
1348 /^\p{Any}+X/utf
1349     AXYZ
1350     \x{1234}XYZ
1351     A\x{1234}XYZ
1352 \= Expect no match
1353     XYZ
1354
1355 /^\P{Any}+X/utf
1356 \= Expect no match
1357     AXYZ
1358     \x{1234}XYZ
1359     A\x{1234}XYZ
1360     XYZ
1361
1362 /^\p{Any}*X/utf
1363     XYZ
1364     AXYZ
1365     \x{1234}XYZ
1366     A\x{1234}XYZ
1367
1368 /^\P{Any}*X/utf
1369     XYZ
1370 \= Expect no match
1371     AXYZ
1372     \x{1234}XYZ
1373     A\x{1234}XYZ
1374
1375 /^[\p{Any}]X/utf
1376     AXYZ
1377     \x{1234}XYZ
1378 \= Expect no match
1379     X
1380     
1381 /^[\P{Any}]X/utf
1382 \= Expect no match
1383     AX
1384     
1385 /^[\p{Any}]?X/utf
1386     XYZ
1387     AXYZ
1388     \x{1234}XYZ
1389 \= Expect no match
1390     ABXYZ
1391
1392 /^[\P{Any}]?X/utf
1393     XYZ
1394 \= Expect no match
1395     AXYZ
1396     \x{1234}XYZ
1397     ABXYZ
1398
1399 /^[\p{Any}]+X/utf
1400     AXYZ
1401     \x{1234}XYZ
1402     A\x{1234}XYZ
1403 \= Expect no match
1404     XYZ
1405
1406 /^[\P{Any}]+X/utf
1407 \= Expect no match
1408     AXYZ
1409     \x{1234}XYZ
1410     A\x{1234}XYZ
1411     XYZ
1412
1413 /^[\p{Any}]*X/utf
1414     XYZ
1415     AXYZ
1416     \x{1234}XYZ
1417     A\x{1234}XYZ
1418
1419 /^[\P{Any}]*X/utf
1420     XYZ
1421 \= Expect no match
1422     AXYZ
1423     \x{1234}XYZ
1424     A\x{1234}XYZ
1425
1426 /^\p{Any}{3,5}?/utf
1427     abcdefgh
1428     \x{1234}\n\r\x{3456}xyz
1429
1430 /^\p{Any}{3,5}/utf
1431     abcdefgh
1432     \x{1234}\n\r\x{3456}xyz
1433
1434 /^\P{Any}{3,5}?/utf
1435 \= Expect no match
1436     abcdefgh
1437     \x{1234}\n\r\x{3456}xyz
1438
1439 /^\p{L&}X/utf
1440      AXY
1441      aXY
1442      \x{1c5}XY
1443 \= Expect no match
1444      \x{1bb}XY
1445      \x{2b0}XY
1446      !XY
1447
1448 /^[\p{L&}]X/utf
1449      AXY
1450      aXY
1451      \x{1c5}XY
1452 \= Expect no match
1453      \x{1bb}XY
1454      \x{2b0}XY
1455      !XY
1456
1457 /^\p{L&}+X/utf
1458      AXY
1459      aXY
1460      AbcdeXyz
1461      \x{1c5}AbXY
1462      abcDEXypqreXlmn
1463 \= Expect no match
1464      \x{1bb}XY
1465      \x{2b0}XY
1466      !XY
1467
1468 /^[\p{L&}]+X/utf
1469      AXY
1470      aXY
1471      AbcdeXyz
1472      \x{1c5}AbXY
1473      abcDEXypqreXlmn
1474 \= Expect no match
1475      \x{1bb}XY
1476      \x{2b0}XY
1477      !XY
1478
1479 /^\p{L&}+?X/utf
1480      AXY
1481      aXY
1482      AbcdeXyz
1483      \x{1c5}AbXY
1484      abcDEXypqreXlmn
1485 \= Expect no match
1486      \x{1bb}XY
1487      \x{2b0}XY
1488      !XY
1489
1490 /^[\p{L&}]+?X/utf
1491      AXY
1492      aXY
1493      AbcdeXyz
1494      \x{1c5}AbXY
1495      abcDEXypqreXlmn
1496 \= Expect no match
1497      \x{1bb}XY
1498      \x{2b0}XY
1499      !XY
1500
1501 /^\P{L&}X/utf
1502      !XY
1503      \x{1bb}XY
1504      \x{2b0}XY
1505 \= Expect no match
1506      \x{1c5}XY
1507      AXY
1508
1509 /^[\P{L&}]X/utf
1510      !XY
1511      \x{1bb}XY
1512      \x{2b0}XY
1513 \= Expect no match
1514      \x{1c5}XY
1515      AXY
1516
1517 /^\x{023a}+?(\x{0130}+)/i,utf
1518   \x{023a}\x{2c65}\x{0130}
1519   
1520 /^\x{023a}+([^X])/i,utf
1521   \x{023a}\x{2c65}X
1522  
1523 /\x{c0}+\x{116}+/i,utf
1524     \x{c0}\x{e0}\x{116}\x{117}
1525
1526 /[\x{c0}\x{116}]+/i,utf
1527     \x{c0}\x{e0}\x{116}\x{117}
1528
1529 # Check property support in non-UTF-8 mode
1530  
1531 /\p{L}{4}/
1532     123abcdefg
1533     123abc\xc4\xc5zz
1534
1535 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf
1536     \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
1537
1538 /\x{a77d}\x{1d79}/i,utf
1539     \x{a77d}\x{1d79}
1540     \x{1d79}\x{a77d}
1541
1542 /\x{a77d}\x{1d79}/utf
1543     \x{a77d}\x{1d79}
1544 \= Expect no match
1545     \x{1d79}\x{a77d}
1546
1547 /^\p{Xan}/utf
1548     ABCD
1549     1234
1550     \x{6ca}
1551     \x{a6c}
1552     \x{10a7}
1553 \= Expect no match
1554     _ABC
1555
1556 /^\p{Xan}+/utf
1557     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1558 \= Expect no match
1559     _ABC
1560
1561 /^\p{Xan}*/utf
1562     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1563     
1564 /^\p{Xan}{2,9}/utf
1565     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1566     
1567 /^[\p{Xan}]/utf
1568     ABCD1234_
1569     1234abcd_
1570     \x{6ca}
1571     \x{a6c}
1572     \x{10a7}
1573 \= Expect no match
1574     _ABC
1575  
1576 /^[\p{Xan}]+/utf
1577     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1578 \= Expect no match
1579     _ABC
1580
1581 /^>\p{Xsp}/utf
1582     >\x{1680}\x{2028}\x{0b}
1583 \= Expect no match
1584     \x{0b}
1585
1586 /^>\p{Xsp}+/utf,no_auto_possess
1587     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1588
1589 /^>\p{Xsp}*/utf,no_auto_possess
1590     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1591     
1592 /^>\p{Xsp}{2,9}/utf,no_auto_possess
1593     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1594     
1595 /^>[\p{Xsp}]/utf,no_auto_possess
1596     >\x{2028}\x{0b}
1597  
1598 /^>[\p{Xsp}]+/utf,no_auto_possess
1599     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1600
1601 /^>\p{Xps}/utf
1602     >\x{1680}\x{2028}\x{0b}
1603     >\x{a0}
1604 \= Expect no match
1605     \x{0b}
1606
1607 /^>\p{Xps}+/utf
1608     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1609
1610 /^>\p{Xps}+?/utf
1611     >\x{1680}\x{2028}\x{0b}
1612
1613 /^>\p{Xps}*/utf
1614     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1615     
1616 /^>\p{Xps}{2,9}/utf
1617     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1618     
1619 /^>\p{Xps}{2,9}?/utf
1620     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1621     
1622 /^>[\p{Xps}]/utf
1623     >\x{2028}\x{0b}
1624  
1625 /^>[\p{Xps}]+/utf
1626     > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
1627
1628 /^\p{Xwd}/utf
1629     ABCD
1630     1234
1631     \x{6ca}
1632     \x{a6c}
1633     \x{10a7}
1634     _ABC
1635 \= Expect no match
1636     []
1637
1638 /^\p{Xwd}+/utf
1639     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1640
1641 /^\p{Xwd}*/utf
1642     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1643     
1644 /^\p{Xwd}{2,9}/utf
1645     A_12\x{6ca}\x{a6c}\x{10a7}
1646     
1647 /^[\p{Xwd}]/utf
1648     ABCD1234_
1649     1234abcd_
1650     \x{6ca}
1651     \x{a6c}
1652     \x{10a7}
1653     _ABC
1654 \= Expect no match
1655     []
1656  
1657 /^[\p{Xwd}]+/utf
1658     ABCD1234\x{6ca}\x{a6c}\x{10a7}_
1659
1660 # Unicode properties for \b abd \B 
1661
1662 /\b...\B/utf,ucp
1663     abc_
1664     \x{37e}abc\x{376}
1665     \x{37e}\x{376}\x{371}\x{393}\x{394}
1666     !\x{c0}++\x{c1}\x{c2}
1667     !\x{c0}+++++
1668
1669 # Without PCRE_UCP, non-ASCII always fail, even if < 256  
1670
1671 /\b...\B/utf
1672     abc_
1673 \= Expect no match
1674     \x{37e}abc\x{376}
1675     \x{37e}\x{376}\x{371}\x{393}\x{394}
1676     !\x{c0}++\x{c1}\x{c2}
1677     !\x{c0}+++++
1678
1679 # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  
1680
1681 /\b...\B/ucp
1682     abc_
1683     !\x{c0}++\x{c1}\x{c2}
1684     !\x{c0}+++++
1685     
1686 # Caseless single negated characters > 127 need UCP support 
1687
1688 /[^\x{100}]/i,utf
1689     \x{100}\x{101}X
1690
1691 /[^\x{100}]+/i,utf
1692     \x{100}\x{101}XX
1693
1694 /^\X/utf
1695     A\=ps
1696     A\=ph
1697     A\x{300}\x{301}\=ps
1698     A\x{300}\x{301}\=ph
1699     A\x{301}\=ps
1700     A\x{301}\=ph
1701     
1702 /^\X{2,3}/utf
1703     A\=ps
1704     A\=ph
1705     AA\=ps
1706     AA\=ph
1707     A\x{300}\x{301}\=ps
1708     A\x{300}\x{301}\=ph
1709     A\x{300}\x{301}A\x{300}\x{301}\=ps
1710     A\x{300}\x{301}A\x{300}\x{301}\=ph
1711
1712 /^\X{2}/utf
1713     AA\=ps
1714     AA\=ph
1715     A\x{300}\x{301}A\x{300}\x{301}\=ps
1716     A\x{300}\x{301}A\x{300}\x{301}\=ph
1717     
1718 /^\X+/utf
1719     AA\=ps
1720     AA\=ph
1721
1722 /^\X+?Z/utf
1723     AA\=ps
1724     AA\=ph
1725
1726 # These are tests for extended grapheme clusters  
1727
1728 /^\X/utf,aftertext
1729     G\x{34e}\x{34e}X
1730     \x{34e}\x{34e}X
1731     \x04X
1732     \x{1100}X
1733     \x{1100}\x{34e}X
1734     \x{1b04}\x{1b04}X
1735 \= These match up to the roman letters
1736     \x{1111}\x{1111}L,L
1737     \x{1111}\x{1111}\x{1169}L,L,V
1738     \x{1111}\x{ae4c}L, LV
1739     \x{1111}\x{ad89}L, LVT
1740     \x{1111}\x{ae4c}\x{1169}L, LV, V
1741     \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
1742     \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
1743     \x{1111}\x{ad89}\x{11fe}L, LVT, T
1744     \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
1745     \x{ad89}\x{11fe}\x{11fe}LVT, T, T
1746 \= These match just the first codepoint (invalid sequence)
1747     \x{1111}\x{11fe}L, T
1748     \x{ae4c}\x{1111}LV, L
1749     \x{ae4c}\x{ae4c}LV, LV
1750     \x{ae4c}\x{ad89}LV, LVT
1751     \x{1169}\x{1111}V, L
1752     \x{1169}\x{ae4c}V, LV
1753     \x{1169}\x{ad89}V, LVT
1754     \x{ad89}\x{1111}LVT, L
1755     \x{ad89}\x{1169}LVT, V
1756     \x{ad89}\x{ae4c}LVT, LV
1757     \x{ad89}\x{ad89}LVT, LVT
1758     \x{11fe}\x{1111}T, L
1759     \x{11fe}\x{1169}T, V
1760     \x{11fe}\x{ae4c}T, LV
1761     \x{11fe}\x{ad89}T, LVT
1762 \= Test extend and spacing mark
1763     \x{1111}\x{ae4c}\x{0711}L, LV, extend
1764     \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
1765     \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
1766 \= Test CR, LF, and control
1767     \x0d\x{0711}CR, extend
1768     \x0d\x{1b04}CR, spacingmark
1769     \x0a\x{0711}LF, extend
1770     \x0a\x{1b04}LF, spacingmark
1771     \x0b\x{0711}Control, extend
1772     \x09\x{1b04}Control, spacingmark
1773 \= There are no Prepend characters, so we can't test Prepend, CR
1774     
1775 /^(?>\X{2})X/utf,aftertext
1776     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1777     
1778 /^\X{2,4}X/utf,aftertext
1779     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1780     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1781     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1782
1783 /^\X{2,4}?X/utf,aftertext
1784     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1785     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1786     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1787
1788 /\x{1e9e}+/i,utf
1789     \x{1e9e}\x{00df}
1790
1791 /[z\x{1e9e}]+/i,utf
1792     \x{1e9e}\x{00df}
1793
1794 /\x{00df}+/i,utf
1795     \x{1e9e}\x{00df}
1796
1797 /[z\x{00df}]+/i,utf
1798     \x{1e9e}\x{00df}
1799
1800 /\x{1f88}+/i,utf
1801     \x{1f88}\x{1f80}
1802
1803 /[z\x{1f88}]+/i,utf
1804     \x{1f88}\x{1f80}
1805
1806 # Perl matches these 
1807
1808 /\x{00b5}+/i,utf
1809     \x{00b5}\x{039c}\x{03bc}
1810
1811 /\x{039c}+/i,utf
1812     \x{00b5}\x{039c}\x{03bc}
1813
1814 /\x{03bc}+/i,utf
1815     \x{00b5}\x{039c}\x{03bc}
1816
1817
1818 /\x{00c5}+/i,utf
1819     \x{00c5}\x{00e5}\x{212b}
1820
1821 /\x{00e5}+/i,utf
1822     \x{00c5}\x{00e5}\x{212b}
1823
1824 /\x{212b}+/i,utf
1825     \x{00c5}\x{00e5}\x{212b}
1826
1827 /\x{01c4}+/i,utf
1828     \x{01c4}\x{01c5}\x{01c6}
1829
1830 /\x{01c5}+/i,utf
1831     \x{01c4}\x{01c5}\x{01c6}
1832
1833 /\x{01c6}+/i,utf
1834     \x{01c4}\x{01c5}\x{01c6}
1835
1836 /\x{01c7}+/i,utf
1837     \x{01c7}\x{01c8}\x{01c9}
1838
1839 /\x{01c8}+/i,utf
1840     \x{01c7}\x{01c8}\x{01c9}
1841
1842 /\x{01c9}+/i,utf
1843     \x{01c7}\x{01c8}\x{01c9}
1844
1845
1846 /\x{01ca}+/i,utf
1847     \x{01ca}\x{01cb}\x{01cc}
1848
1849 /\x{01cb}+/i,utf
1850     \x{01ca}\x{01cb}\x{01cc}
1851
1852 /\x{01cc}+/i,utf
1853     \x{01ca}\x{01cb}\x{01cc}
1854
1855 /\x{01f1}+/i,utf
1856     \x{01f1}\x{01f2}\x{01f3}
1857
1858 /\x{01f2}+/i,utf
1859     \x{01f1}\x{01f2}\x{01f3}
1860
1861 /\x{01f3}+/i,utf
1862     \x{01f1}\x{01f2}\x{01f3}
1863
1864 /\x{0345}+/i,utf
1865     \x{0345}\x{0399}\x{03b9}\x{1fbe}
1866
1867 /\x{0399}+/i,utf
1868     \x{0345}\x{0399}\x{03b9}\x{1fbe}
1869
1870 /\x{03b9}+/i,utf
1871     \x{0345}\x{0399}\x{03b9}\x{1fbe}
1872
1873 /\x{1fbe}+/i,utf
1874     \x{0345}\x{0399}\x{03b9}\x{1fbe}
1875
1876 /\x{0392}+/i,utf
1877     \x{0392}\x{03b2}\x{03d0}
1878
1879 /\x{03b2}+/i,utf
1880     \x{0392}\x{03b2}\x{03d0}
1881
1882 /\x{03d0}+/i,utf
1883     \x{0392}\x{03b2}\x{03d0}
1884     
1885
1886 /\x{0395}+/i,utf
1887     \x{0395}\x{03b5}\x{03f5}
1888
1889 /\x{03b5}+/i,utf
1890     \x{0395}\x{03b5}\x{03f5}
1891
1892 /\x{03f5}+/i,utf
1893     \x{0395}\x{03b5}\x{03f5}
1894
1895 /\x{0398}+/i,utf
1896     \x{0398}\x{03b8}\x{03d1}\x{03f4}
1897
1898 /\x{03b8}+/i,utf
1899     \x{0398}\x{03b8}\x{03d1}\x{03f4}
1900
1901 /\x{03d1}+/i,utf
1902     \x{0398}\x{03b8}\x{03d1}\x{03f4}
1903
1904 /\x{03f4}+/i,utf
1905     \x{0398}\x{03b8}\x{03d1}\x{03f4}
1906
1907 /\x{039a}+/i,utf
1908     \x{039a}\x{03ba}\x{03f0}
1909
1910 /\x{03ba}+/i,utf
1911     \x{039a}\x{03ba}\x{03f0}
1912
1913 /\x{03f0}+/i,utf
1914     \x{039a}\x{03ba}\x{03f0}
1915     
1916 /\x{03a0}+/i,utf
1917     \x{03a0}\x{03c0}\x{03d6}
1918
1919 /\x{03c0}+/i,utf
1920     \x{03a0}\x{03c0}\x{03d6}
1921
1922 /\x{03d6}+/i,utf
1923     \x{03a0}\x{03c0}\x{03d6}
1924
1925 /\x{03a1}+/i,utf
1926     \x{03a1}\x{03c1}\x{03f1}
1927
1928 /\x{03c1}+/i,utf
1929     \x{03a1}\x{03c1}\x{03f1}
1930
1931 /\x{03f1}+/i,utf
1932     \x{03a1}\x{03c1}\x{03f1}
1933
1934 /\x{03a3}+/i,utf
1935     \x{03A3}\x{03C2}\x{03C3}
1936
1937 /\x{03c2}+/i,utf
1938     \x{03A3}\x{03C2}\x{03C3}
1939
1940 /\x{03c3}+/i,utf
1941     \x{03A3}\x{03C2}\x{03C3}
1942
1943 /\x{03a6}+/i,utf
1944     \x{03a6}\x{03c6}\x{03d5}
1945
1946 /\x{03c6}+/i,utf
1947     \x{03a6}\x{03c6}\x{03d5}
1948
1949 /\x{03d5}+/i,utf
1950     \x{03a6}\x{03c6}\x{03d5}
1951
1952 /\x{03c9}+/i,utf
1953     \x{03c9}\x{03a9}\x{2126}
1954
1955 /\x{03a9}+/i,utf
1956     \x{03c9}\x{03a9}\x{2126}
1957
1958 /\x{2126}+/i,utf
1959     \x{03c9}\x{03a9}\x{2126}
1960     
1961 /\x{1e60}+/i,utf
1962     \x{1e60}\x{1e61}\x{1e9b}
1963
1964 /\x{1e61}+/i,utf
1965     \x{1e60}\x{1e61}\x{1e9b}
1966
1967 /\x{1e9b}+/i,utf
1968     \x{1e60}\x{1e61}\x{1e9b}
1969     
1970 /\x{1e9e}+/i,utf
1971     \x{1e9e}\x{00df}
1972
1973 /\x{00df}+/i,utf
1974     \x{1e9e}\x{00df}
1975     
1976 /\x{1f88}+/i,utf
1977     \x{1f88}\x{1f80}
1978
1979 /\x{1f80}+/i,utf
1980     \x{1f88}\x{1f80}
1981
1982 /\x{004b}+/i,utf
1983     \x{004b}\x{006b}\x{212a}
1984
1985 /\x{006b}+/i,utf
1986     \x{004b}\x{006b}\x{212a}
1987
1988 /\x{212a}+/i,utf
1989     \x{004b}\x{006b}\x{212a}
1990
1991 /\x{0053}+/i,utf
1992     \x{0053}\x{0073}\x{017f}
1993
1994 /\x{0073}+/i,utf
1995     \x{0053}\x{0073}\x{017f}
1996
1997 /\x{017f}+/i,utf
1998     \x{0053}\x{0073}\x{017f}
1999
2000 /ist/i,utf
2001 \= Expect no match
2002     ikt
2003
2004 /is+t/i,utf
2005     iSs\x{17f}t
2006 \= Expect no match
2007     ikt
2008
2009 /is+?t/i,utf
2010 \= Expect no match
2011     ikt
2012
2013 /is?t/i,utf
2014 \= Expect no match
2015     ikt
2016
2017 /is{2}t/i,utf
2018 \= Expect no match
2019     iskt
2020
2021 /^\p{Xuc}/utf
2022     $abc
2023     @abc
2024     `abc
2025     \x{1234}abc
2026 \= Expect no match
2027     abc
2028
2029 /^\p{Xuc}+/utf
2030     $@`\x{a0}\x{1234}\x{e000}**
2031 \= Expect no match
2032     \x{9f}
2033
2034 /^\p{Xuc}+?/utf
2035     $@`\x{a0}\x{1234}\x{e000}**
2036 \= Expect no match
2037     \x{9f}
2038
2039 /^\p{Xuc}+?\*/utf
2040     $@`\x{a0}\x{1234}\x{e000}**
2041 \= Expect no match
2042     \x{9f}
2043
2044 /^\p{Xuc}++/utf
2045     $@`\x{a0}\x{1234}\x{e000}**
2046 \= Expect no match
2047     \x{9f}
2048
2049 /^\p{Xuc}{3,5}/utf
2050     $@`\x{a0}\x{1234}\x{e000}**
2051 \= Expect no match
2052     \x{9f}
2053
2054 /^\p{Xuc}{3,5}?/utf
2055     $@`\x{a0}\x{1234}\x{e000}**
2056 \= Expect no match
2057     \x{9f}
2058
2059 /^[\p{Xuc}]/utf
2060     $@`\x{a0}\x{1234}\x{e000}**
2061 \= Expect no match
2062     \x{9f}
2063
2064 /^[\p{Xuc}]+/utf
2065     $@`\x{a0}\x{1234}\x{e000}**
2066 \= Expect no match
2067     \x{9f}
2068
2069 /^\P{Xuc}/utf
2070     abc
2071 \= Expect no match
2072     $abc
2073     @abc
2074     `abc
2075     \x{1234}abc
2076
2077 /^[\P{Xuc}]/utf
2078     abc
2079 \= Expect no match
2080     $abc
2081     @abc
2082     `abc
2083     \x{1234}abc
2084
2085 /^A\s+Z/utf,ucp
2086     A\x{2005}Z
2087     A\x{85}\x{180e}\x{2005}Z
2088
2089 /^A[\s]+Z/utf,ucp
2090     A\x{2005}Z
2091     A\x{85}\x{180e}\x{2005}Z
2092
2093 /(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext
2094     \x{100}\x{200}\x{300}
2095
2096 # End of testinput7