new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / external / pcre2-10.32 / testdata / testoutput4
1 # This set of tests is for UTF support, including Unicode properties. The 
2 # Unicode tests are all compatible with all versions of Perl >= 5.10, but
3 # some of the property tests may differ because of different versions of
4 # Unicode in use by PCRE2 and Perl.
5
6 #newline_default lf anycrlf any
7 #perltest
8
9 /a.b/utf
10     acb
11  0: acb
12     a\x7fb
13  0: a\x{7f}b
14     a\x{100}b
15  0: a\x{100}b
16 \= Expect no match
17     a\nb
18 No match
19
20 /a(.{3})b/utf
21     a\x{4000}xyb
22  0: a\x{4000}xyb
23  1: \x{4000}xy
24     a\x{4000}\x7fyb
25  0: a\x{4000}\x{7f}yb
26  1: \x{4000}\x{7f}y
27     a\x{4000}\x{100}yb
28  0: a\x{4000}\x{100}yb
29  1: \x{4000}\x{100}y
30 \= Expect no match
31     a\x{4000}b
32 No match
33     ac\ncb
34 No match
35
36 /a(.*?)(.)/
37     a\xc0\x88b
38  0: a\xc0
39  1: 
40  2: \xc0
41
42 /a(.*?)(.)/utf
43     a\x{100}b
44  0: a\x{100}
45  1: 
46  2: \x{100}
47
48 /a(.*)(.)/
49     a\xc0\x88b
50  0: a\xc0\x88b
51  1: \xc0\x88
52  2: b
53
54 /a(.*)(.)/utf
55     a\x{100}b
56  0: a\x{100}b
57  1: \x{100}
58  2: b
59
60 /a(.)(.)/
61     a\xc0\x92bcd
62  0: a\xc0\x92
63  1: \xc0
64  2: \x92
65
66 /a(.)(.)/utf
67     a\x{240}bcd
68  0: a\x{240}b
69  1: \x{240}
70  2: b
71
72 /a(.?)(.)/
73     a\xc0\x92bcd
74  0: a\xc0\x92
75  1: \xc0
76  2: \x92
77
78 /a(.?)(.)/utf
79     a\x{240}bcd
80  0: a\x{240}b
81  1: \x{240}
82  2: b
83
84 /a(.??)(.)/
85     a\xc0\x92bcd
86  0: a\xc0
87  1: 
88  2: \xc0
89
90 /a(.??)(.)/utf
91     a\x{240}bcd
92  0: a\x{240}
93  1: 
94  2: \x{240}
95
96 /a(.{3})b/utf
97     a\x{1234}xyb
98  0: a\x{1234}xyb
99  1: \x{1234}xy
100     a\x{1234}\x{4321}yb
101  0: a\x{1234}\x{4321}yb
102  1: \x{1234}\x{4321}y
103     a\x{1234}\x{4321}\x{3412}b
104  0: a\x{1234}\x{4321}\x{3412}b
105  1: \x{1234}\x{4321}\x{3412}
106 \= Expect no match
107     a\x{1234}b
108 No match
109     ac\ncb
110 No match
111
112 /a(.{3,})b/utf
113     a\x{1234}xyb
114  0: a\x{1234}xyb
115  1: \x{1234}xy
116     a\x{1234}\x{4321}yb
117  0: a\x{1234}\x{4321}yb
118  1: \x{1234}\x{4321}y
119     a\x{1234}\x{4321}\x{3412}b
120  0: a\x{1234}\x{4321}\x{3412}b
121  1: \x{1234}\x{4321}\x{3412}
122     axxxxbcdefghijb
123  0: axxxxbcdefghijb
124  1: xxxxbcdefghij
125     a\x{1234}\x{4321}\x{3412}\x{3421}b
126  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
127  1: \x{1234}\x{4321}\x{3412}\x{3421}
128 \= Expect no match
129     a\x{1234}b
130 No match
131
132 /a(.{3,}?)b/utf
133     a\x{1234}xyb
134  0: a\x{1234}xyb
135  1: \x{1234}xy
136     a\x{1234}\x{4321}yb
137  0: a\x{1234}\x{4321}yb
138  1: \x{1234}\x{4321}y
139     a\x{1234}\x{4321}\x{3412}b
140  0: a\x{1234}\x{4321}\x{3412}b
141  1: \x{1234}\x{4321}\x{3412}
142     axxxxbcdefghijb
143  0: axxxxb
144  1: xxxx
145     a\x{1234}\x{4321}\x{3412}\x{3421}b
146  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
147  1: \x{1234}\x{4321}\x{3412}\x{3421}
148 \= Expect no match
149     a\x{1234}b
150 No match
151
152 /a(.{3,5})b/utf
153     a\x{1234}xyb
154  0: a\x{1234}xyb
155  1: \x{1234}xy
156     a\x{1234}\x{4321}yb
157  0: a\x{1234}\x{4321}yb
158  1: \x{1234}\x{4321}y
159     a\x{1234}\x{4321}\x{3412}b
160  0: a\x{1234}\x{4321}\x{3412}b
161  1: \x{1234}\x{4321}\x{3412}
162     axxxxbcdefghijb
163  0: axxxxb
164  1: xxxx
165     a\x{1234}\x{4321}\x{3412}\x{3421}b
166  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
167  1: \x{1234}\x{4321}\x{3412}\x{3421}
168     axbxxbcdefghijb
169  0: axbxxb
170  1: xbxx
171     axxxxxbcdefghijb
172  0: axxxxxb
173  1: xxxxx
174 \= Expect no match
175     a\x{1234}b
176 No match
177     axxxxxxbcdefghijb
178 No match
179
180 /a(.{3,5}?)b/utf
181     a\x{1234}xyb
182  0: a\x{1234}xyb
183  1: \x{1234}xy
184     a\x{1234}\x{4321}yb
185  0: a\x{1234}\x{4321}yb
186  1: \x{1234}\x{4321}y
187     a\x{1234}\x{4321}\x{3412}b
188  0: a\x{1234}\x{4321}\x{3412}b
189  1: \x{1234}\x{4321}\x{3412}
190     axxxxbcdefghijb
191  0: axxxxb
192  1: xxxx
193     a\x{1234}\x{4321}\x{3412}\x{3421}b
194  0: a\x{1234}\x{4321}\x{3412}\x{3421}b
195  1: \x{1234}\x{4321}\x{3412}\x{3421}
196     axbxxbcdefghijb
197  0: axbxxb
198  1: xbxx
199     axxxxxbcdefghijb
200  0: axxxxxb
201  1: xxxxx
202 \= Expect no match
203     a\x{1234}b
204 No match
205     axxxxxxbcdefghijb
206 No match
207
208 /^[a\x{c0}]/utf
209 \= Expect no match
210     \x{100}
211 No match
212
213 /(?<=aXb)cd/utf
214     aXbcd
215  0: cd
216
217 /(?<=a\x{100}b)cd/utf
218     a\x{100}bcd
219  0: cd
220
221 /(?<=a\x{100000}b)cd/utf
222     a\x{100000}bcd
223  0: cd
224
225 /(?:\x{100}){3}b/utf
226     \x{100}\x{100}\x{100}b
227  0: \x{100}\x{100}\x{100}b
228 \= Expect no match
229     \x{100}\x{100}b
230 No match
231
232 /\x{ab}/utf
233     \x{ab}
234  0: \x{ab}
235     \xc2\xab
236  0: \x{ab}
237 \= Expect no match
238     \x00{ab}
239 No match
240
241 /(?<=(.))X/utf
242     WXYZ
243  0: X
244  1: W
245     \x{256}XYZ
246  0: X
247  1: \x{256}
248 \= Expect no match
249     XYZ
250 No match
251
252 /[^a]+/g,utf
253     bcd
254  0: bcd
255     \x{100}aY\x{256}Z
256  0: \x{100}
257  0: Y\x{256}Z
258
259 /^[^a]{2}/utf
260     \x{100}bc
261  0: \x{100}b
262
263 /^[^a]{2,}/utf
264     \x{100}bcAa
265  0: \x{100}bcA
266
267 /^[^a]{2,}?/utf
268     \x{100}bca
269  0: \x{100}b
270
271 /[^a]+/gi,utf
272     bcd
273  0: bcd
274     \x{100}aY\x{256}Z
275  0: \x{100}
276  0: Y\x{256}Z
277
278 /^[^a]{2}/i,utf
279     \x{100}bc
280  0: \x{100}b
281
282 /^[^a]{2,}/i,utf
283     \x{100}bcAa
284  0: \x{100}bc
285
286 /^[^a]{2,}?/i,utf
287     \x{100}bca
288  0: \x{100}b
289
290 /\x{100}{0,0}/utf
291     abcd
292  0: 
293
294 /\x{100}?/utf
295     abcd
296  0: 
297     \x{100}\x{100}
298  0: \x{100}
299
300 /\x{100}{0,3}/utf
301     \x{100}\x{100}
302  0: \x{100}\x{100}
303     \x{100}\x{100}\x{100}\x{100}
304  0: \x{100}\x{100}\x{100}
305
306 /\x{100}*/utf
307     abce
308  0: 
309     \x{100}\x{100}\x{100}\x{100}
310  0: \x{100}\x{100}\x{100}\x{100}
311
312 /\x{100}{1,1}/utf
313     abcd\x{100}\x{100}\x{100}\x{100}
314  0: \x{100}
315
316 /\x{100}{1,3}/utf
317     abcd\x{100}\x{100}\x{100}\x{100}
318  0: \x{100}\x{100}\x{100}
319
320 /\x{100}+/utf
321     abcd\x{100}\x{100}\x{100}\x{100}
322  0: \x{100}\x{100}\x{100}\x{100}
323
324 /\x{100}{3}/utf
325     abcd\x{100}\x{100}\x{100}XX
326  0: \x{100}\x{100}\x{100}
327
328 /\x{100}{3,5}/utf
329     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
330  0: \x{100}\x{100}\x{100}\x{100}\x{100}
331
332 /\x{100}{3,}/utf
333     abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
334  0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
335
336 /(?<=a\x{100}{2}b)X/utf,aftertext
337     Xyyya\x{100}\x{100}bXzzz
338  0: X
339  0+ zzz
340
341 /\D*/utf
342   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
343  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
344
345 /\D*/utf
346   \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}
347  0: \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}
348
349 /\D/utf
350     1X2
351  0: X
352     1\x{100}2
353  0: \x{100}
354
355 />\S/utf
356     > >X Y
357  0: >X
358     > >\x{100} Y
359  0: >\x{100}
360
361 /\d/utf
362     \x{100}3
363  0: 3
364
365 /\s/utf
366     \x{100} X
367  0:  
368
369 /\D+/utf
370     12abcd34
371  0: abcd
372 \= Expect no match
373     1234
374 No match
375
376 /\D{2,3}/utf
377     12abcd34
378  0: abc
379     12ab34
380  0: ab
381 \= Expect no match
382     1234
383 No match
384     12a34
385 No match
386
387 /\D{2,3}?/utf
388     12abcd34
389  0: ab
390     12ab34
391  0: ab
392 \= Expect no match
393     1234
394 No match
395     12a34
396 No match
397
398 /\d+/utf
399     12abcd34
400  0: 12
401
402 /\d{2,3}/utf
403     12abcd34
404  0: 12
405     1234abcd
406  0: 123
407 \= Expect no match
408     1.4
409 No match
410
411 /\d{2,3}?/utf
412     12abcd34
413  0: 12
414     1234abcd
415  0: 12
416 \= Expect no match
417     1.4
418 No match
419
420 /\S+/utf
421     12abcd34
422  0: 12abcd34
423 \= Expect no match
424     \    \
425 No match
426
427 /\S{2,3}/utf
428     12abcd34
429  0: 12a
430     1234abcd
431  0: 123
432 \= Expect no match
433     \     \
434 No match
435
436 /\S{2,3}?/utf
437     12abcd34
438  0: 12
439     1234abcd
440  0: 12
441 \= Expect no match
442     \     \
443 No match
444
445 />\s+</utf,aftertext
446     12>      <34
447  0: >      <
448  0+ 34
449
450 />\s{2,3}</utf,aftertext
451     ab>  <cd
452  0: >  <
453  0+ cd
454     ab>   <ce
455  0: >   <
456  0+ ce
457 \= Expect no match
458     ab>    <cd
459 No match
460
461 />\s{2,3}?</utf,aftertext
462     ab>  <cd
463  0: >  <
464  0+ cd
465     ab>   <ce
466  0: >   <
467  0+ ce
468 \= Expect no match
469     ab>    <cd
470 No match
471
472 /\w+/utf
473     12      34
474  0: 12
475 \= Expect no match
476     +++=*!
477 No match
478
479 /\w{2,3}/utf
480     ab  cd
481  0: ab
482     abcd ce
483  0: abc
484 \= Expect no match
485     a.b.c
486 No match
487
488 /\w{2,3}?/utf
489     ab  cd
490  0: ab
491     abcd ce
492  0: ab
493 \= Expect no match
494     a.b.c
495 No match
496
497 /\W+/utf
498     12====34
499  0: ====
500 \= Expect no match
501     abcd
502 No match
503
504 /\W{2,3}/utf
505     ab====cd
506  0: ===
507     ab==cd
508  0: ==
509 \= Expect no match
510     a.b.c
511 No match
512
513 /\W{2,3}?/utf
514     ab====cd
515  0: ==
516     ab==cd
517  0: ==
518 \= Expect no match
519     a.b.c
520 No match
521
522 /[\x{100}]/utf
523     \x{100}
524  0: \x{100}
525     Z\x{100}
526  0: \x{100}
527     \x{100}Z
528  0: \x{100}
529
530 /[Z\x{100}]/utf
531     Z\x{100}
532  0: Z
533     \x{100}
534  0: \x{100}
535     \x{100}Z
536  0: \x{100}
537
538 /[\x{100}\x{200}]/utf
539     ab\x{100}cd
540  0: \x{100}
541     ab\x{200}cd
542  0: \x{200}
543
544 /[\x{100}-\x{200}]/utf
545     ab\x{100}cd
546  0: \x{100}
547     ab\x{200}cd
548  0: \x{200}
549     ab\x{111}cd
550  0: \x{111}
551
552 /[z-\x{200}]/utf
553     ab\x{100}cd
554  0: \x{100}
555     ab\x{200}cd
556  0: \x{200}
557     ab\x{111}cd
558  0: \x{111}
559     abzcd
560  0: z
561     ab|cd
562  0: |
563
564 /[Q\x{100}\x{200}]/utf
565     ab\x{100}cd
566  0: \x{100}
567     ab\x{200}cd
568  0: \x{200}
569     Q?
570  0: Q
571
572 /[Q\x{100}-\x{200}]/utf
573     ab\x{100}cd
574  0: \x{100}
575     ab\x{200}cd
576  0: \x{200}
577     ab\x{111}cd
578  0: \x{111}
579     Q?
580  0: Q
581
582 /[Qz-\x{200}]/utf
583     ab\x{100}cd
584  0: \x{100}
585     ab\x{200}cd
586  0: \x{200}
587     ab\x{111}cd
588  0: \x{111}
589     abzcd
590  0: z
591     ab|cd
592  0: |
593     Q?
594  0: Q
595
596 /[\x{100}\x{200}]{1,3}/utf
597     ab\x{100}cd
598  0: \x{100}
599     ab\x{200}cd
600  0: \x{200}
601     ab\x{200}\x{100}\x{200}\x{100}cd
602  0: \x{200}\x{100}\x{200}
603
604 /[\x{100}\x{200}]{1,3}?/utf
605     ab\x{100}cd
606  0: \x{100}
607     ab\x{200}cd
608  0: \x{200}
609     ab\x{200}\x{100}\x{200}\x{100}cd
610  0: \x{200}
611
612 /[Q\x{100}\x{200}]{1,3}/utf
613     ab\x{100}cd
614  0: \x{100}
615     ab\x{200}cd
616  0: \x{200}
617     ab\x{200}\x{100}\x{200}\x{100}cd
618  0: \x{200}\x{100}\x{200}
619
620 /[Q\x{100}\x{200}]{1,3}?/utf
621     ab\x{100}cd
622  0: \x{100}
623     ab\x{200}cd
624  0: \x{200}
625     ab\x{200}\x{100}\x{200}\x{100}cd
626  0: \x{200}
627
628 /(?<=[\x{100}\x{200}])X/utf
629     abc\x{200}X
630  0: X
631     abc\x{100}X
632  0: X
633 \= Expect no match
634     X
635 No match
636
637 /(?<=[Q\x{100}\x{200}])X/utf
638     abc\x{200}X
639  0: X
640     abc\x{100}X
641  0: X
642     abQX
643  0: X
644 \= Expect no match
645     X
646 No match
647
648 /(?<=[\x{100}\x{200}]{3})X/utf
649     abc\x{100}\x{200}\x{100}X
650  0: X
651 \= Expect no match
652     abc\x{200}X
653 No match
654     X
655 No match
656
657 /[^\x{100}\x{200}]X/utf
658     AX
659  0: AX
660     \x{150}X
661  0: \x{150}X
662     \x{500}X
663  0: \x{500}X
664 \= Expect no match
665     \x{100}X
666 No match
667     \x{200}X
668 No match
669
670 /[^Q\x{100}\x{200}]X/utf
671     AX
672  0: AX
673     \x{150}X
674  0: \x{150}X
675     \x{500}X
676  0: \x{500}X
677 \= Expect no match
678     \x{100}X
679 No match
680     \x{200}X
681 No match
682     QX
683 No match
684
685 /[^\x{100}-\x{200}]X/utf
686     AX
687  0: AX
688     \x{500}X
689  0: \x{500}X
690 \= Expect no match
691     \x{100}X
692 No match
693     \x{150}X
694 No match
695     \x{200}X
696 No match
697
698 /[z-\x{100}]/i,utf
699     z
700  0: z
701     Z
702  0: Z
703     \x{100}
704  0: \x{100}
705 \= Expect no match
706     \x{102}
707 No match
708     y
709 No match
710
711 /[\xFF]/
712     >\xff<
713  0: \xff
714
715 /[\xff]/utf
716     >\x{ff}<
717  0: \x{ff}
718
719 /[^\xFF]/
720     XYZ
721  0: X
722
723 /[^\xff]/utf
724     XYZ
725  0: X
726     \x{123}
727  0: \x{123}
728
729 /^[ac]*b/utf
730 \= Expect no match
731   xb
732 No match
733
734 /^[ac\x{100}]*b/utf
735 \= Expect no match
736   xb
737 No match
738
739 /^[^x]*b/i,utf
740 \= Expect no match
741   xb
742 No match
743
744 /^[^x]*b/utf
745 \= Expect no match
746   xb
747 No match
748
749 /^\d*b/utf
750 \= Expect no match
751   xb
752 No match
753
754 /(|a)/g,utf
755     catac
756  0: 
757  1: 
758  0: 
759  1: 
760  0: a
761  1: a
762  0: 
763  1: 
764  0: 
765  1: 
766  0: a
767  1: a
768  0: 
769  1: 
770  0: 
771  1: 
772     a\x{256}a
773  0: 
774  1: 
775  0: a
776  1: a
777  0: 
778  1: 
779  0: 
780  1: 
781  0: a
782  1: a
783  0: 
784  1: 
785
786 /^\x{85}$/i,utf
787     \x{85}
788  0: \x{85}
789
790 /^ሴ/utf
791     ሴ
792  0: \x{1234}
793
794 /^\ሴ/utf
795     ሴ
796  0: \x{1234}
797
798 "(?s)(.{1,5})"utf
799     abcdefg
800  0: abcde
801  1: abcde
802     ab
803  0: ab
804  1: ab
805
806 /a*\x{100}*\w/utf
807     a
808  0: a
809
810 /\S\S/g,utf
811     A\x{a3}BC
812  0: A\x{a3}
813  0: BC
814
815 /\S{2}/g,utf
816     A\x{a3}BC
817  0: A\x{a3}
818  0: BC
819
820 /\W\W/g,utf
821     +\x{a3}==
822  0: +\x{a3}
823  0: ==
824
825 /\W{2}/g,utf
826     +\x{a3}==
827  0: +\x{a3}
828  0: ==
829
830 /\S/g,utf
831     \x{442}\x{435}\x{441}\x{442}
832  0: \x{442}
833  0: \x{435}
834  0: \x{441}
835  0: \x{442}
836
837 /[\S]/g,utf
838     \x{442}\x{435}\x{441}\x{442}
839  0: \x{442}
840  0: \x{435}
841  0: \x{441}
842  0: \x{442}
843
844 /\D/g,utf
845     \x{442}\x{435}\x{441}\x{442}
846  0: \x{442}
847  0: \x{435}
848  0: \x{441}
849  0: \x{442}
850
851 /[\D]/g,utf
852     \x{442}\x{435}\x{441}\x{442}
853  0: \x{442}
854  0: \x{435}
855  0: \x{441}
856  0: \x{442}
857
858 /\W/g,utf
859     \x{2442}\x{2435}\x{2441}\x{2442}
860  0: \x{2442}
861  0: \x{2435}
862  0: \x{2441}
863  0: \x{2442}
864
865 /[\W]/g,utf
866     \x{2442}\x{2435}\x{2441}\x{2442}
867  0: \x{2442}
868  0: \x{2435}
869  0: \x{2441}
870  0: \x{2442}
871
872 /[\S\s]*/utf
873     abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
874  0: abc\x{0a}\x{0d}\x{442}\x{435}\x{441}\x{442}xyz
875
876 /[\x{41f}\S]/g,utf
877     \x{442}\x{435}\x{441}\x{442}
878  0: \x{442}
879  0: \x{435}
880  0: \x{441}
881  0: \x{442}
882
883 /.[^\S]./g,utf
884     abc def\x{442}\x{443}xyz\npqr
885  0: c d
886  0: z\x{0a}p
887
888 /.[^\S\n]./g,utf
889     abc def\x{442}\x{443}xyz\npqr
890  0: c d
891
892 /[[:^alnum:]]/g,utf
893     +\x{2442}
894  0: +
895  0: \x{2442}
896
897 /[[:^alpha:]]/g,utf
898     +\x{2442}
899  0: +
900  0: \x{2442}
901
902 /[[:^ascii:]]/g,utf
903     A\x{442}
904  0: \x{442}
905
906 /[[:^blank:]]/g,utf
907     A\x{442}
908  0: A
909  0: \x{442}
910
911 /[[:^cntrl:]]/g,utf
912     A\x{442}
913  0: A
914  0: \x{442}
915
916 /[[:^digit:]]/g,utf
917     A\x{442}
918  0: A
919  0: \x{442}
920
921 /[[:^graph:]]/g,utf
922     \x19\x{e01ff}
923  0: \x{19}
924  0: \x{e01ff}
925
926 /[[:^lower:]]/g,utf
927     A\x{422}
928  0: A
929  0: \x{422}
930
931 /[[:^print:]]/g,utf
932     \x{19}\x{e01ff}
933  0: \x{19}
934  0: \x{e01ff}
935
936 /[[:^punct:]]/g,utf
937     A\x{442}
938  0: A
939  0: \x{442}
940
941 /[[:^space:]]/g,utf
942     A\x{442}
943  0: A
944  0: \x{442}
945
946 /[[:^upper:]]/g,utf
947     a\x{442}
948  0: a
949  0: \x{442}
950
951 /[[:^word:]]/g,utf
952     +\x{2442}
953  0: +
954  0: \x{2442}
955
956 /[[:^xdigit:]]/g,utf
957     M\x{442}
958  0: M
959  0: \x{442}
960
961 /[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d_^]/utf
962
963 /^[^d]*?$/
964     abc
965  0: abc
966
967 /^[^d]*?$/utf
968     abc
969  0: abc
970
971 /^[^d]*?$/i
972     abc
973  0: abc
974
975 /^[^d]*?$/i,utf
976     abc
977  0: abc
978
979 /(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
980
981 /^[a\x{c0}]b/utf
982     \x{c0}b
983  0: \x{c0}b
984
985 /^([a\x{c0}]*?)aa/utf
986     a\x{c0}aaaa/
987  0: a\x{c0}aa
988  1: a\x{c0}
989
990 /^([a\x{c0}]*?)aa/utf
991     a\x{c0}aaaa/
992  0: a\x{c0}aa
993  1: a\x{c0}
994     a\x{c0}a\x{c0}aaa/
995  0: a\x{c0}a\x{c0}aa
996  1: a\x{c0}a\x{c0}
997
998 /^([a\x{c0}]*)aa/utf
999     a\x{c0}aaaa/
1000  0: a\x{c0}aaaa
1001  1: a\x{c0}aa
1002     a\x{c0}a\x{c0}aaa/
1003  0: a\x{c0}a\x{c0}aaa
1004  1: a\x{c0}a\x{c0}a
1005
1006 /^([a\x{c0}]*)a\x{c0}/utf
1007     a\x{c0}aaaa/
1008  0: a\x{c0}
1009  1: 
1010     a\x{c0}a\x{c0}aaa/
1011  0: a\x{c0}a\x{c0}
1012  1: a\x{c0}
1013
1014 /A*/g,utf
1015     AAB\x{123}BAA
1016  0: AA
1017  0: 
1018  0: 
1019  0: 
1020  0: AA
1021  0: 
1022
1023 /(abc)\1/i,utf
1024 \= Expect no match
1025    abc
1026 No match
1027
1028 /(abc)\1/utf
1029 \= Expect no match
1030    abc
1031 No match
1032
1033 /a(*:a\x{1234}b)/utf,mark
1034     abc
1035  0: a
1036 MK: a\x{1234}b
1037
1038 /a(*:a£b)/utf,mark
1039     abc
1040  0: a
1041 MK: a\x{a3}b
1042
1043 # Noncharacters
1044
1045 /./utf
1046     \x{fffe}
1047  0: \x{fffe}
1048     \x{ffff}
1049  0: \x{ffff}
1050     \x{1fffe}
1051  0: \x{1fffe}
1052     \x{1ffff}
1053  0: \x{1ffff}
1054     \x{2fffe}
1055  0: \x{2fffe}
1056     \x{2ffff}
1057  0: \x{2ffff}
1058     \x{3fffe}
1059  0: \x{3fffe}
1060     \x{3ffff}
1061  0: \x{3ffff}
1062     \x{4fffe}
1063  0: \x{4fffe}
1064     \x{4ffff}
1065  0: \x{4ffff}
1066     \x{5fffe}
1067  0: \x{5fffe}
1068     \x{5ffff}
1069  0: \x{5ffff}
1070     \x{6fffe}
1071  0: \x{6fffe}
1072     \x{6ffff}
1073  0: \x{6ffff}
1074     \x{7fffe}
1075  0: \x{7fffe}
1076     \x{7ffff}
1077  0: \x{7ffff}
1078     \x{8fffe}
1079  0: \x{8fffe}
1080     \x{8ffff}
1081  0: \x{8ffff}
1082     \x{9fffe}
1083  0: \x{9fffe}
1084     \x{9ffff}
1085  0: \x{9ffff}
1086     \x{afffe}
1087  0: \x{afffe}
1088     \x{affff}
1089  0: \x{affff}
1090     \x{bfffe}
1091  0: \x{bfffe}
1092     \x{bffff}
1093  0: \x{bffff}
1094     \x{cfffe}
1095  0: \x{cfffe}
1096     \x{cffff}
1097  0: \x{cffff}
1098     \x{dfffe}
1099  0: \x{dfffe}
1100     \x{dffff}
1101  0: \x{dffff}
1102     \x{efffe}
1103  0: \x{efffe}
1104     \x{effff}
1105  0: \x{effff}
1106     \x{ffffe}
1107  0: \x{ffffe}
1108     \x{fffff}
1109  0: \x{fffff}
1110     \x{10fffe}
1111  0: \x{10fffe}
1112     \x{10ffff}
1113  0: \x{10ffff}
1114     \x{fdd0}
1115  0: \x{fdd0}
1116     \x{fdd1}
1117  0: \x{fdd1}
1118     \x{fdd2}
1119  0: \x{fdd2}
1120     \x{fdd3}
1121  0: \x{fdd3}
1122     \x{fdd4}
1123  0: \x{fdd4}
1124     \x{fdd5}
1125  0: \x{fdd5}
1126     \x{fdd6}
1127  0: \x{fdd6}
1128     \x{fdd7}
1129  0: \x{fdd7}
1130     \x{fdd8}
1131  0: \x{fdd8}
1132     \x{fdd9}
1133  0: \x{fdd9}
1134     \x{fdda}
1135  0: \x{fdda}
1136     \x{fddb}
1137  0: \x{fddb}
1138     \x{fddc}
1139  0: \x{fddc}
1140     \x{fddd}
1141  0: \x{fddd}
1142     \x{fdde}
1143  0: \x{fdde}
1144     \x{fddf}
1145  0: \x{fddf}
1146     \x{fde0}
1147  0: \x{fde0}
1148     \x{fde1}
1149  0: \x{fde1}
1150     \x{fde2}
1151  0: \x{fde2}
1152     \x{fde3}
1153  0: \x{fde3}
1154     \x{fde4}
1155  0: \x{fde4}
1156     \x{fde5}
1157  0: \x{fde5}
1158     \x{fde6}
1159  0: \x{fde6}
1160     \x{fde7}
1161  0: \x{fde7}
1162     \x{fde8}
1163  0: \x{fde8}
1164     \x{fde9}
1165  0: \x{fde9}
1166     \x{fdea}
1167  0: \x{fdea}
1168     \x{fdeb}
1169  0: \x{fdeb}
1170     \x{fdec}
1171  0: \x{fdec}
1172     \x{fded}
1173  0: \x{fded}
1174     \x{fdee}
1175  0: \x{fdee}
1176     \x{fdef}
1177  0: \x{fdef}
1178
1179 /^\d*\w{4}/utf
1180     1234
1181  0: 1234
1182 \= Expect no match     
1183     123
1184 No match
1185
1186 /^[^b]*\w{4}/utf
1187     aaaa
1188  0: aaaa
1189 \= Expect no match     
1190     aaa
1191 No match
1192
1193 /^[^b]*\w{4}/i,utf
1194     aaaa
1195  0: aaaa
1196 \= Expect no match     
1197     aaa
1198 No match
1199
1200 /^\x{100}*.{4}/utf
1201     \x{100}\x{100}\x{100}\x{100}
1202  0: \x{100}\x{100}\x{100}\x{100}
1203 \= Expect no match     
1204     \x{100}\x{100}\x{100}
1205 No match
1206
1207 /^\x{100}*.{4}/i,utf
1208     \x{100}\x{100}\x{100}\x{100}
1209  0: \x{100}\x{100}\x{100}\x{100}
1210 \= Expect no match     
1211     \x{100}\x{100}\x{100}
1212 No match
1213
1214 /^a+[a\x{200}]/utf
1215     aa
1216  0: aa
1217
1218 /^.\B.\B./utf
1219     \x{10123}\x{10124}\x{10125}
1220  0: \x{10123}\x{10124}\x{10125}
1221
1222 /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
1223     #\x{10000}#\x{100}#\x{10ffff}#
1224  0: #\x{10000}#\x{100}#\x{10ffff}#
1225     
1226 # Unicode property support tests 
1227
1228 /^\pC\pL\pM\pN\pP\pS\pZ</utf
1229     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
1230  0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
1231     \np\x{300}9!\$ < 
1232  0: \x{0a}p\x{300}9!$ <
1233 \= Expect no match     
1234     ap\x{300}9!\$ < 
1235 No match
1236   
1237 /^\PC/utf
1238     X
1239  0: X
1240 \= Expect no match     
1241     \x7f
1242 No match
1243   
1244 /^\PL/utf
1245     9
1246  0: 9
1247 \= Expect no match     
1248     \x{c0}
1249 No match
1250   
1251 /^\PM/utf
1252     X
1253  0: X
1254 \= Expect no match     
1255     \x{30f}
1256 No match
1257   
1258 /^\PN/utf
1259     X
1260  0: X
1261 \= Expect no match     
1262     \x{660}
1263 No match
1264   
1265 /^\PP/utf
1266     X
1267  0: X
1268 \= Expect no match 
1269     \x{66c}
1270 No match
1271   
1272 /^\PS/utf
1273     X
1274  0: X
1275 \= Expect no match 
1276     \x{f01}
1277 No match
1278   
1279 /^\PZ/utf
1280     X
1281  0: X
1282 \= Expect no match 
1283     \x{1680}
1284 No match
1285     
1286 /^\p{Cc}/utf
1287     \x{017}
1288  0: \x{17}
1289     \x{09f} 
1290  0: \x{9f}
1291 \= Expect no match
1292     \x{0600} 
1293 No match
1294   
1295 /^\p{Cf}/utf
1296     \x{601}
1297  0: \x{601}
1298 \= Expect no match
1299     \x{09f} 
1300 No match
1301   
1302 /^\p{Cn}/utf
1303     \x{e0000}
1304  0: \x{e0000}
1305 \= Expect no match
1306     \x{09f} 
1307 No match
1308   
1309 /^\p{Co}/utf
1310     \x{f8ff}
1311  0: \x{f8ff}
1312 \= Expect no match
1313     \x{09f} 
1314 No match
1315   
1316 /^\p{Ll}/utf
1317     a
1318  0: a
1319 \= Expect no match 
1320     Z
1321 No match
1322     \x{e000}  
1323 No match
1324   
1325 /^\p{Lm}/utf
1326     \x{2b0}
1327  0: \x{2b0}
1328 \= Expect no match
1329     a 
1330 No match
1331   
1332 /^\p{Lo}/utf
1333     \x{1bb}
1334  0: \x{1bb}
1335     \x{3400}
1336  0: \x{3400}
1337     \x{3401}
1338  0: \x{3401}
1339     \x{4d00}
1340  0: \x{4d00}
1341     \x{4db4}
1342  0: \x{4db4}
1343     \x{4db5}     
1344  0: \x{4db5}
1345 \= Expect no match
1346     a 
1347 No match
1348     \x{2b0}
1349 No match
1350     \x{4db6} 
1351 No match
1352   
1353 /^\p{Lt}/utf
1354     \x{1c5}
1355  0: \x{1c5}
1356 \= Expect no match
1357     a 
1358 No match
1359     \x{2b0}
1360 No match
1361   
1362 /^\p{Lu}/utf
1363     A
1364  0: A
1365 \= Expect no match
1366     \x{2b0}
1367 No match
1368   
1369 /^\p{Mc}/utf
1370     \x{903}
1371  0: \x{903}
1372 \= Expect no match
1373     X
1374 No match
1375     \x{300}
1376 No match
1377        
1378 /^\p{Me}/utf
1379     \x{488}
1380  0: \x{488}
1381 \= Expect no match
1382     X
1383 No match
1384     \x{903}
1385 No match
1386     \x{300}
1387 No match
1388   
1389 /^\p{Mn}/utf
1390     \x{300}
1391  0: \x{300}
1392 \= Expect no match
1393     X
1394 No match
1395     \x{903}
1396 No match
1397   
1398 /^\p{Nd}+/utf
1399     0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
1400  0: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}
1401     \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
1402  0: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}
1403     \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
1404  0: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}
1405 \= Expect no match
1406     X
1407 No match
1408   
1409 /^\p{Nl}/utf
1410     \x{16ee}
1411  0: \x{16ee}
1412 \= Expect no match
1413     X
1414 No match
1415     \x{966}
1416 No match
1417   
1418 /^\p{No}/utf
1419     \x{b2}
1420  0: \x{b2}
1421     \x{b3}
1422  0: \x{b3}
1423 \= Expect no match
1424     X
1425 No match
1426     \x{16ee}
1427 No match
1428   
1429 /^\p{Pc}/utf
1430     \x5f
1431  0: _
1432     \x{203f}
1433  0: \x{203f}
1434 \= Expect no match
1435     X
1436 No match
1437     -
1438 No match
1439     \x{58a}
1440 No match
1441   
1442 /^\p{Pd}/utf
1443     -
1444  0: -
1445     \x{58a}
1446  0: \x{58a}
1447 \= Expect no match
1448     X
1449 No match
1450     \x{203f}
1451 No match
1452   
1453 /^\p{Pe}/utf
1454     )
1455  0: )
1456     ]
1457  0: ]
1458     }
1459  0: }
1460     \x{f3b}
1461  0: \x{f3b}
1462 \= Expect no match
1463     X
1464 No match
1465     \x{203f}
1466 No match
1467     (
1468 No match
1469     [
1470 No match
1471     {
1472 No match
1473     \x{f3c}
1474 No match
1475   
1476 /^\p{Pf}/utf
1477     \x{bb}
1478  0: \x{bb}
1479     \x{2019}
1480  0: \x{2019}
1481 \= Expect no match
1482     X
1483 No match
1484     \x{203f}
1485 No match
1486   
1487 /^\p{Pi}/utf
1488     \x{ab}
1489  0: \x{ab}
1490     \x{2018}
1491  0: \x{2018}
1492 \= Expect no match
1493     X
1494 No match
1495     \x{203f}
1496 No match
1497   
1498 /^\p{Po}/utf
1499     !
1500  0: !
1501     \x{37e}
1502  0: \x{37e}
1503 \= Expect no match
1504     X
1505 No match
1506     \x{203f}
1507 No match
1508   
1509 /^\p{Ps}/utf
1510     (
1511  0: (
1512     [
1513  0: [
1514     {
1515  0: {
1516     \x{f3c}
1517  0: \x{f3c}
1518 \= Expect no match
1519     X
1520 No match
1521     )
1522 No match
1523     ]
1524 No match
1525     }
1526 No match
1527     \x{f3b}
1528 No match
1529   
1530 /^\p{Sk}/utf
1531     \x{2c2}
1532  0: \x{2c2}
1533 \= Expect no match
1534     X
1535 No match
1536     \x{9f2}
1537 No match
1538   
1539 /^\p{Sm}+/utf
1540     +<|~\x{ac}\x{2044}
1541  0: +<|~\x{ac}\x{2044}
1542 \= Expect no match
1543     X
1544 No match
1545     \x{9f2}
1546 No match
1547   
1548 /^\p{So}/utf
1549     \x{a6}
1550  0: \x{a6}
1551     \x{482} 
1552  0: \x{482}
1553 \= Expect no match
1554     X
1555 No match
1556     \x{9f2}
1557 No match
1558   
1559 /^\p{Zl}/utf
1560     \x{2028}
1561  0: \x{2028}
1562 \= Expect no match
1563     X
1564 No match
1565     \x{2029}
1566 No match
1567   
1568 /^\p{Zp}/utf
1569     \x{2029}
1570  0: \x{2029}
1571 \= Expect no match
1572     X
1573 No match
1574     \x{2028}
1575 No match
1576   
1577 /\p{Nd}+(..)/utf
1578     \x{660}\x{661}\x{662}ABC
1579  0: \x{660}\x{661}\x{662}AB
1580  1: AB
1581   
1582 /\p{Nd}+?(..)/utf
1583     \x{660}\x{661}\x{662}ABC
1584  0: \x{660}\x{661}\x{662}
1585  1: \x{661}\x{662}
1586   
1587 /\p{Nd}{2,}(..)/utf
1588     \x{660}\x{661}\x{662}ABC
1589  0: \x{660}\x{661}\x{662}AB
1590  1: AB
1591   
1592 /\p{Nd}{2,}?(..)/utf
1593     \x{660}\x{661}\x{662}ABC
1594  0: \x{660}\x{661}\x{662}A
1595  1: \x{662}A
1596   
1597 /\p{Nd}*(..)/utf
1598     \x{660}\x{661}\x{662}ABC
1599  0: \x{660}\x{661}\x{662}AB
1600  1: AB
1601   
1602 /\p{Nd}*?(..)/utf
1603     \x{660}\x{661}\x{662}ABC
1604  0: \x{660}\x{661}
1605  1: \x{660}\x{661}
1606   
1607 /\p{Nd}{2}(..)/utf
1608     \x{660}\x{661}\x{662}ABC
1609  0: \x{660}\x{661}\x{662}A
1610  1: \x{662}A
1611   
1612 /\p{Nd}{2,3}(..)/utf
1613     \x{660}\x{661}\x{662}ABC
1614  0: \x{660}\x{661}\x{662}AB
1615  1: AB
1616   
1617 /\p{Nd}{2,3}?(..)/utf
1618     \x{660}\x{661}\x{662}ABC
1619  0: \x{660}\x{661}\x{662}A
1620  1: \x{662}A
1621   
1622 /\p{Nd}?(..)/utf
1623     \x{660}\x{661}\x{662}ABC
1624  0: \x{660}\x{661}\x{662}
1625  1: \x{661}\x{662}
1626   
1627 /\p{Nd}??(..)/utf
1628     \x{660}\x{661}\x{662}ABC
1629  0: \x{660}\x{661}
1630  1: \x{660}\x{661}
1631   
1632 /\p{Nd}*+(..)/utf
1633     \x{660}\x{661}\x{662}ABC
1634  0: \x{660}\x{661}\x{662}AB
1635  1: AB
1636   
1637 /\p{Nd}*+(...)/utf
1638     \x{660}\x{661}\x{662}ABC
1639  0: \x{660}\x{661}\x{662}ABC
1640  1: ABC
1641   
1642 /\p{Nd}*+(....)/utf
1643 \= Expect no match
1644     \x{660}\x{661}\x{662}ABC
1645 No match
1646   
1647 /(?<=A\p{Nd})XYZ/utf
1648     A2XYZ
1649  0: XYZ
1650     123A5XYZPQR
1651  0: XYZ
1652     ABA\x{660}XYZpqr
1653  0: XYZ
1654 \= Expect no match
1655     AXYZ
1656 No match
1657     XYZ     
1658 No match
1659     
1660 /(?<!\pL)XYZ/utf
1661     1XYZ
1662  0: XYZ
1663     AB=XYZ.. 
1664  0: XYZ
1665     XYZ 
1666  0: XYZ
1667 \= Expect no match
1668     WXYZ 
1669 No match
1670
1671 /[\P{Nd}]+/utf
1672     abcd
1673  0: abcd
1674 \= Expect no match
1675     1234
1676 No match
1677
1678 /\D+/utf
1679     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1680  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1681 \= Expect no match
1682     11111111111111111111111111111111111111111111111111111111111111111111111
1683 No match
1684      
1685 /\P{Nd}+/utf
1686     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1687  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1688 \= Expect no match
1689     11111111111111111111111111111111111111111111111111111111111111111111111
1690 No match
1691
1692 /[\D]+/utf
1693     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1694  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1695 \= Expect no match
1696     11111111111111111111111111111111111111111111111111111111111111111111111
1697 No match
1698
1699 /[\P{Nd}]+/utf
1700     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1701  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1702 \= Expect no match
1703     11111111111111111111111111111111111111111111111111111111111111111111111
1704 No match
1705
1706 /[\D\P{Nd}]+/utf
1707     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1708  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1709 \= Expect no match
1710     11111111111111111111111111111111111111111111111111111111111111111111111
1711 No match
1712
1713 /\pL/utf
1714     a
1715  0: a
1716     A 
1717  0: A
1718
1719 /\pL/i,utf
1720     a
1721  0: a
1722     A 
1723  0: A
1724     
1725 /\p{Lu}/utf
1726     A
1727  0: A
1728     aZ
1729  0: Z
1730 \= Expect no match
1731     abc   
1732 No match
1733
1734 /\p{Ll}/utf
1735     a
1736  0: a
1737     Az
1738  0: z
1739 \= Expect no match
1740     ABC   
1741 No match
1742
1743 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
1744     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1745  0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1746 \= Expect no match
1747     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
1748 No match
1749     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1750 No match
1751     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1752 No match
1753     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1754 No match
1755     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1756 No match
1757
1758 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
1759     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1760  0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1761     a\x{391}\x{10427}\x{ff3a}\x{1fb0}   
1762  0: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
1763     A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1764  0: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1765     A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1766  0: A\x{391}\x{1044f}\x{ff3a}\x{1fb0}
1767     A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1768  0: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1769     A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1770  0: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1771
1772 /\x{391}+/i,utf
1773     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
1774  0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
1775
1776 /\x{391}{3,5}(.)/i,utf
1777     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1778  0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1779  1: X
1780
1781 /\x{391}{3,5}?(.)/i,utf
1782     \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1783  0: \x{391}\x{3b1}\x{3b1}\x{3b1}
1784  1: \x{3b1}
1785
1786 /[\x{391}\x{ff3a}]/i,utf
1787     \x{391}
1788  0: \x{391}
1789     \x{ff3a}
1790  0: \x{ff3a}
1791     \x{3b1}
1792  0: \x{3b1}
1793     \x{ff5a}   
1794  0: \x{ff5a}
1795     
1796 /^(\X*)C/utf
1797     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
1798  0: A\x{300}\x{301}\x{302}BC
1799  1: A\x{300}\x{301}\x{302}B
1800     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
1801  0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1802  1: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1803
1804 /^(\X*?)C/utf
1805     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
1806  0: A\x{300}\x{301}\x{302}BC
1807  1: A\x{300}\x{301}\x{302}B
1808     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
1809  0: A\x{300}\x{301}\x{302}BC
1810  1: A\x{300}\x{301}\x{302}B
1811
1812 /^(\X*)(.)/utf
1813     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
1814  0: A\x{300}\x{301}\x{302}BCA
1815  1: A\x{300}\x{301}\x{302}BC
1816  2: A
1817     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
1818  0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1819  1: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1820  2: C
1821
1822 /^(\X*?)(.)/utf
1823     A\x{300}\x{301}\x{302}BCA\x{300}\x{301} 
1824  0: A
1825  1: 
1826  2: A
1827     A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C 
1828  0: A
1829  1: 
1830  2: A
1831
1832 /^\X(.)/utf
1833 \= Expect no match
1834     A\x{300}\x{301}\x{302}
1835 No match
1836
1837 /^\X{2,3}(.)/utf
1838     A\x{300}\x{301}B\x{300}X
1839  0: A\x{300}\x{301}B\x{300}X
1840  1: X
1841     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1842  0: A\x{300}\x{301}B\x{300}C
1843  1: C
1844     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1845  0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1846  1: X
1847     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1848  0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
1849  1: D
1850     
1851 /^\X{2,3}?(.)/utf
1852     A\x{300}\x{301}B\x{300}X
1853  0: A\x{300}\x{301}B\x{300}X
1854  1: X
1855     A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1856  0: A\x{300}\x{301}B\x{300}C
1857  1: C
1858     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1859  0: A\x{300}\x{301}B\x{300}C
1860  1: C
1861     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1862  0: A\x{300}\x{301}B\x{300}C
1863  1: C
1864
1865 /^\X/utf
1866     A
1867  0: A
1868     A\x{300}BC 
1869  0: A\x{300}
1870     A\x{300}\x{301}\x{302}BC 
1871  0: A\x{300}\x{301}\x{302}
1872     \x{300}  
1873  0: \x{300}
1874
1875 /^\p{Han}+/utf
1876     \x{2e81}\x{3007}\x{2f804}\x{31a0}
1877  0: \x{2e81}\x{3007}\x{2f804}
1878 \= Expect no match
1879     \x{2e7f}  
1880 No match
1881
1882 /^\P{Katakana}+/utf
1883     \x{3105}
1884  0: \x{3105}
1885 \= Expect no match
1886     \x{30ff}  
1887 No match
1888
1889 /^[\p{Arabic}]/utf
1890     \x{06e9}
1891  0: \x{6e9}
1892     \x{060b}
1893  0: \x{60b}
1894 \= Expect no match
1895     X\x{06e9}   
1896 No match
1897
1898 /^[\P{Yi}]/utf
1899     \x{2f800}
1900  0: \x{2f800}
1901 \= Expect no match
1902     \x{a014}
1903 No match
1904     \x{a4c6}   
1905 No match
1906     
1907 /^\p{Any}X/utf
1908     AXYZ
1909  0: AX
1910     \x{1234}XYZ 
1911  0: \x{1234}X
1912 \= Expect no match
1913     X  
1914 No match
1915     
1916 /^\P{Any}X/utf
1917 \= Expect no match
1918     AX
1919 No match
1920     
1921 /^\p{Any}?X/utf
1922     XYZ
1923  0: X
1924     AXYZ
1925  0: AX
1926     \x{1234}XYZ 
1927  0: \x{1234}X
1928 \= Expect no match
1929     ABXYZ   
1930 No match
1931
1932 /^\P{Any}?X/utf
1933     XYZ
1934  0: X
1935 \= Expect no match
1936     AXYZ
1937 No match
1938     \x{1234}XYZ 
1939 No match
1940     ABXYZ   
1941 No match
1942
1943 /^\p{Any}+X/utf
1944     AXYZ
1945  0: AX
1946     \x{1234}XYZ
1947  0: \x{1234}X
1948     A\x{1234}XYZ
1949  0: A\x{1234}X
1950 \= Expect no match
1951     XYZ
1952 No match
1953
1954 /^\P{Any}+X/utf
1955 \= Expect no match
1956     AXYZ
1957 No match
1958     \x{1234}XYZ
1959 No match
1960     A\x{1234}XYZ
1961 No match
1962     XYZ
1963 No match
1964
1965 /^\p{Any}*X/utf
1966     XYZ
1967  0: X
1968     AXYZ
1969  0: AX
1970     \x{1234}XYZ
1971  0: \x{1234}X
1972     A\x{1234}XYZ
1973  0: A\x{1234}X
1974
1975 /^\P{Any}*X/utf
1976     XYZ
1977  0: X
1978 \= Expect no match
1979     AXYZ
1980 No match
1981     \x{1234}XYZ
1982 No match
1983     A\x{1234}XYZ
1984 No match
1985
1986 /^[\p{Any}]X/utf
1987     AXYZ
1988  0: AX
1989     \x{1234}XYZ 
1990  0: \x{1234}X
1991 \= Expect no match
1992     X  
1993 No match
1994     
1995 /^[\P{Any}]X/utf
1996 \= Expect no match
1997     AX
1998 No match
1999     
2000 /^[\p{Any}]?X/utf
2001     XYZ
2002  0: X
2003     AXYZ
2004  0: AX
2005     \x{1234}XYZ 
2006  0: \x{1234}X
2007 \= Expect no match
2008     ABXYZ   
2009 No match
2010
2011 /^[\P{Any}]?X/utf
2012     XYZ
2013  0: X
2014 \= Expect no match
2015     AXYZ
2016 No match
2017     \x{1234}XYZ 
2018 No match
2019     ABXYZ   
2020 No match
2021
2022 /^[\p{Any}]+X/utf
2023     AXYZ
2024  0: AX
2025     \x{1234}XYZ
2026  0: \x{1234}X
2027     A\x{1234}XYZ
2028  0: A\x{1234}X
2029 \= Expect no match
2030     XYZ
2031 No match
2032
2033 /^[\P{Any}]+X/utf
2034 \= Expect no match
2035     AXYZ
2036 No match
2037     \x{1234}XYZ
2038 No match
2039     A\x{1234}XYZ
2040 No match
2041     XYZ
2042 No match
2043
2044 /^[\p{Any}]*X/utf
2045     XYZ
2046  0: X
2047     AXYZ
2048  0: AX
2049     \x{1234}XYZ
2050  0: \x{1234}X
2051     A\x{1234}XYZ
2052  0: A\x{1234}X
2053
2054 /^[\P{Any}]*X/utf
2055     XYZ
2056  0: X
2057 \= Expect no match
2058     AXYZ
2059 No match
2060     \x{1234}XYZ
2061 No match
2062     A\x{1234}XYZ
2063 No match
2064
2065 /^\p{Any}{3,5}?/utf
2066     abcdefgh
2067  0: abc
2068     \x{1234}\n\r\x{3456}xyz 
2069  0: \x{1234}\x{0a}\x{0d}
2070
2071 /^\p{Any}{3,5}/utf
2072     abcdefgh
2073  0: abcde
2074     \x{1234}\n\r\x{3456}xyz 
2075  0: \x{1234}\x{0a}\x{0d}\x{3456}x
2076
2077 /^\P{Any}{3,5}?/utf
2078 \= Expect no match
2079     abcdefgh
2080 No match
2081     \x{1234}\n\r\x{3456}xyz 
2082 No match
2083
2084 /^\p{L&}X/utf
2085      AXY
2086  0: AX
2087      aXY
2088  0: aX
2089      \x{1c5}XY
2090  0: \x{1c5}X
2091 \= Expect no match
2092     \x{1bb}XY
2093 No match
2094     \x{2b0}XY
2095 No match
2096     !XY      
2097 No match
2098
2099 /^[\p{L&}]X/utf
2100     AXY
2101  0: AX
2102     aXY
2103  0: aX
2104      \x{1c5}XY
2105  0: \x{1c5}X
2106 \= Expect no match
2107     \x{1bb}XY
2108 No match
2109     \x{2b0}XY
2110 No match
2111     !XY      
2112 No match
2113
2114 /^\p{L&}+X/utf
2115     AXY
2116  0: AX
2117     aXY
2118  0: aX
2119     AbcdeXyz 
2120  0: AbcdeX
2121     \x{1c5}AbXY
2122  0: \x{1c5}AbX
2123     abcDEXypqreXlmn 
2124  0: abcDEXypqreX
2125 \= Expect no match
2126     \x{1bb}XY
2127 No match
2128     \x{2b0}XY
2129 No match
2130     !XY      
2131 No match
2132
2133 /^[\p{L&}]+X/utf
2134     AXY
2135  0: AX
2136     aXY
2137  0: aX
2138     AbcdeXyz 
2139  0: AbcdeX
2140     \x{1c5}AbXY
2141  0: \x{1c5}AbX
2142     abcDEXypqreXlmn 
2143  0: abcDEXypqreX
2144 \= Expect no match
2145     \x{1bb}XY
2146 No match
2147     \x{2b0}XY
2148 No match
2149     !XY      
2150 No match
2151
2152 /^\p{L&}+?X/utf
2153     AXY
2154  0: AX
2155     aXY
2156  0: aX
2157     AbcdeXyz 
2158  0: AbcdeX
2159     \x{1c5}AbXY
2160  0: \x{1c5}AbX
2161     abcDEXypqreXlmn 
2162  0: abcDEX
2163 \= Expect no match
2164     \x{1bb}XY
2165 No match
2166     \x{2b0}XY
2167 No match
2168     !XY      
2169 No match
2170
2171 /^[\p{L&}]+?X/utf
2172     AXY
2173  0: AX
2174     aXY
2175  0: aX
2176     AbcdeXyz 
2177  0: AbcdeX
2178     \x{1c5}AbXY
2179  0: \x{1c5}AbX
2180     abcDEXypqreXlmn 
2181  0: abcDEX
2182 \= Expect no match
2183     \x{1bb}XY
2184 No match
2185     \x{2b0}XY
2186 No match
2187     !XY      
2188 No match
2189
2190 /^\P{L&}X/utf
2191     !XY
2192  0: !X
2193     \x{1bb}XY
2194  0: \x{1bb}X
2195     \x{2b0}XY
2196  0: \x{2b0}X
2197 \= Expect no match
2198     \x{1c5}XY
2199 No match
2200     AXY      
2201 No match
2202
2203 /^[\P{L&}]X/utf
2204     !XY
2205  0: !X
2206     \x{1bb}XY
2207  0: \x{1bb}X
2208     \x{2b0}XY
2209  0: \x{2b0}X
2210 \= Expect no match
2211     \x{1c5}XY
2212 No match
2213     AXY      
2214 No match
2215
2216 /^(\p{Z}[^\p{C}\p{Z}]+)*$/
2217     \xa0!
2218  0: \xa0!
2219  1: \xa0!
2220
2221 /^[\pL](abc)(?1)/
2222     AabcabcYZ    
2223  0: Aabcabc
2224  1: abc
2225
2226 /([\pL]=(abc))*X/
2227     L=abcX
2228  0: L=abcX
2229  1: L=abc
2230  2: abc
2231
2232 /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
2233     \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
2234  0: \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
2235
2236 # Check property support in non-UTF mode
2237  
2238 /\p{L}{4}/
2239     123abcdefg
2240  0: abcd
2241     123abc\xc4\xc5zz
2242  0: abc\xc4
2243
2244 /\X{1,3}\d/
2245 \= Expect no match
2246     \x8aBCD
2247 No match
2248   
2249 /\X?\d/
2250 \= Expect no match
2251     \x8aBCD 
2252 No match
2253
2254 /\P{L}?\d/
2255 \= Expect no match
2256     \x8aBCD 
2257 No match
2258
2259 /[\PPP\x8a]{1,}\x80/
2260     A\x80
2261  0: A\x80
2262
2263 /^[\p{Arabic}]/utf
2264     \x{604}
2265  0: \x{604}
2266     \x{60e} 
2267  0: \x{60e}
2268     \x{656} 
2269  0: \x{656}
2270     \x{657} 
2271  0: \x{657}
2272     \x{658} 
2273  0: \x{658}
2274     \x{659} 
2275  0: \x{659}
2276     \x{65a} 
2277  0: \x{65a}
2278     \x{65b} 
2279  0: \x{65b}
2280     \x{65c} 
2281  0: \x{65c}
2282     \x{65d} 
2283  0: \x{65d}
2284     \x{65e} 
2285  0: \x{65e}
2286     \x{65f}
2287  0: \x{65f}
2288     \x{66a} 
2289  0: \x{66a}
2290     \x{6e9} 
2291  0: \x{6e9}
2292     \x{6ef}
2293  0: \x{6ef}
2294     \x{6fa}  
2295  0: \x{6fa}
2296
2297 /^\p{Cyrillic}/utf
2298     \x{1d2b} 
2299  0: \x{1d2b}
2300     
2301 /^\p{Common}/utf
2302     \x{2116}
2303  0: \x{2116}
2304     \x{1D183}  
2305  0: \x{1d183}
2306
2307 /^\p{Inherited}/utf
2308     \x{200c} 
2309  0: \x{200c}
2310 \= Expect no match
2311     \x{64a}
2312 No match
2313     \x{656}     
2314 No match
2315
2316 /^\p{Shavian}/utf
2317     \x{10450}
2318  0: \x{10450}
2319     \x{1047f}
2320  0: \x{1047f}
2321     
2322 /^\p{Deseret}/utf
2323     \x{10400}
2324  0: \x{10400}
2325     \x{1044f}
2326  0: \x{1044f}
2327     
2328 /^\p{Osmanya}/utf
2329     \x{10480}
2330  0: \x{10480}
2331     \x{1049d}
2332  0: \x{1049d}
2333     \x{104a0}
2334  0: \x{104a0}
2335     \x{104a9}
2336  0: \x{104a9}
2337 \= Expect no match
2338     \x{1049e}
2339 No match
2340     \x{1049f}
2341 No match
2342     \x{104aa}           
2343 No match
2344
2345 /\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
2346     \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
2347  0: \x{102a4}\x{aa52}\x{a91d}\x{1c46}\x{10283}\x{1092e}\x{1c6b}\x{a93b}\x{a8bf}\x{1ba0}\x{a50a}
2348
2349 /\x{a77d}\x{1d79}/i,utf
2350     \x{a77d}\x{1d79}
2351  0: \x{a77d}\x{1d79}
2352     \x{1d79}\x{a77d} 
2353  0: \x{1d79}\x{a77d}
2354
2355 /\x{a77d}\x{1d79}/utf
2356     \x{a77d}\x{1d79}
2357  0: \x{a77d}\x{1d79}
2358 \= Expect no match 
2359     \x{1d79}\x{a77d} 
2360 No match
2361
2362 /(A)\1/i,utf
2363     AA
2364  0: AA
2365  1: A
2366     Aa
2367  0: Aa
2368  1: A
2369     aa
2370  0: aa
2371  1: a
2372     aA
2373  0: aA
2374  1: a
2375
2376 /(\x{10a})\1/i,utf
2377     \x{10a}\x{10a}
2378  0: \x{10a}\x{10a}
2379  1: \x{10a}
2380     \x{10a}\x{10b}
2381  0: \x{10a}\x{10b}
2382  1: \x{10a}
2383     \x{10b}\x{10b}
2384  0: \x{10b}\x{10b}
2385  1: \x{10b}
2386     \x{10b}\x{10a}
2387  0: \x{10b}\x{10a}
2388  1: \x{10b}
2389     
2390 # The next two tests are for property support in non-UTF mode
2391
2392 /(?:\p{Lu}|\x20)+/
2393     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
2394  0: A P\xc2T\xc9 TODAY
2395
2396 /[\p{Lu}\x20]+/
2397     \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
2398  0: A P\xc2T\xc9 TODAY
2399
2400 /\p{Avestan}\p{Bamum}\p{Egyptian_Hieroglyphs}\p{Imperial_Aramaic}\p{Inscriptional_Pahlavi}\p{Inscriptional_Parthian}\p{Javanese}\p{Kaithi}\p{Lisu}\p{Meetei_Mayek}\p{Old_South_Arabian}\p{Old_Turkic}\p{Samaritan}\p{Tai_Tham}\p{Tai_Viet}/utf
2401     \x{10b00}\x{a6ef}\x{13007}\x{10857}\x{10b78}\x{10b58}\x{a980}\x{110c1}\x{a4ff}\x{abc0}\x{10a7d}\x{10c48}\x{0800}\x{1aad}\x{aac0}
2402  0: \x{10b00}\x{a6ef}\x{13007}\x{10857}\x{10b78}\x{10b58}\x{a980}\x{110c1}\x{a4ff}\x{abc0}\x{10a7d}\x{10c48}\x{800}\x{1aad}\x{aac0}
2403
2404 /^\w+/utf,ucp
2405     Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2406  0: Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2407
2408 /^[[:xdigit:]]*/utf,ucp
2409     1a\x{660}\x{bef}\x{16ee}
2410  0: 1a
2411   
2412 /^\d+/utf,ucp
2413     1\x{660}\x{bef}\x{16ee}
2414  0: 1\x{660}\x{bef}
2415   
2416 /^[[:digit:]]+/utf,ucp
2417     1\x{660}\x{bef}\x{16ee}
2418  0: 1\x{660}\x{bef}
2419
2420 /^>\s+/utf,ucp
2421     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
2422  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
2423   
2424 /^>\pZ+/utf,ucp
2425     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
2426  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}
2427   
2428 /^>[[:space:]]*/utf,ucp
2429     >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b} 
2430  0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
2431
2432 /^>[[:blank:]]*/utf,ucp
2433     >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028} 
2434  0: > \x{a0}\x{1680}\x{2000}\x{202f}\x{09}
2435
2436 /^[[:alpha:]]*/utf,ucp
2437     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
2438  0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
2439
2440 /^[[:alnum:]]*/utf,ucp
2441     Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2442  0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2443
2444 /^[[:cntrl:]]*/utf,ucp
2445     \x{0}\x{09}\x{1f}\x{7f}\x{9f} 
2446  0: \x{00}\x{09}\x{1f}\x{7f}\x{9f}
2447
2448 /^[[:graph:]]*/utf,ucp
2449     A\x{a1}\x{a0}
2450  0: A\x{a1}
2451
2452 /^[[:print:]]*/utf,ucp
2453     A z\x{a0}\x{a1}
2454  0: A z\x{a0}\x{a1}
2455
2456 /^[[:punct:]]*/utf,ucp
2457     .+\x{a1}\x{a0}
2458  0: .+\x{a1}
2459
2460 /\p{Zs}*?\R/
2461 \= Expect no match
2462     a\xFCb   
2463 No match
2464
2465 /\p{Zs}*\R/
2466 \= Expect no match 
2467     a\xFCb   
2468 No match
2469
2470 /ⱥ/i,utf
2471     ⱥ
2472  0: \x{2c65}
2473     Ⱥx 
2474  0: \x{23a}
2475     Ⱥ 
2476  0: \x{23a}
2477
2478 /[ⱥ]/i,utf
2479     ⱥ
2480  0: \x{2c65}
2481     Ⱥx 
2482  0: \x{23a}
2483     Ⱥ 
2484  0: \x{23a}
2485
2486 /Ⱥ/i,utf
2487     Ⱥ
2488  0: \x{23a}
2489     ⱥ
2490  0: \x{2c65}
2491     
2492 # These are tests for extended grapheme clusters  
2493
2494 /^\X/utf,aftertext
2495     G\x{34e}\x{34e}X
2496  0: G\x{34e}\x{34e}
2497  0+ X
2498     \x{34e}\x{34e}X
2499  0: \x{34e}\x{34e}
2500  0+ X
2501     \x04X
2502  0: \x{04}
2503  0+ X
2504     \x{1100}X
2505  0: \x{1100}
2506  0+ X
2507     \x{1100}\x{34e}X
2508  0: \x{1100}\x{34e}
2509  0+ X
2510     \x{1b04}\x{1b04}X 
2511  0: \x{1b04}\x{1b04}
2512  0+ X
2513     *These match up to the roman letters
2514  0: *
2515  0+ These match up to the roman letters
2516     \x{1111}\x{1111}L,L
2517  0: \x{1111}\x{1111}
2518  0+ L,L
2519     \x{1111}\x{1111}\x{1169}L,L,V
2520  0: \x{1111}\x{1111}\x{1169}
2521  0+ L,L,V
2522     \x{1111}\x{ae4c}L, LV
2523  0: \x{1111}\x{ae4c}
2524  0+ L, LV
2525     \x{1111}\x{ad89}L, LVT
2526  0: \x{1111}\x{ad89}
2527  0+ L, LVT
2528     \x{1111}\x{ae4c}\x{1169}L, LV, V
2529  0: \x{1111}\x{ae4c}\x{1169}
2530  0+ L, LV, V
2531     \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
2532  0: \x{1111}\x{ae4c}\x{1169}\x{1169}
2533  0+ L, LV, V, V
2534     \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
2535  0: \x{1111}\x{ae4c}\x{1169}\x{11fe}
2536  0+ L, LV, V, T
2537     \x{1111}\x{ad89}\x{11fe}L, LVT, T
2538  0: \x{1111}\x{ad89}\x{11fe}
2539  0+ L, LVT, T
2540     \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
2541  0: \x{1111}\x{ad89}\x{11fe}\x{11fe}
2542  0+ L, LVT, T, T
2543     \x{ad89}\x{11fe}\x{11fe}LVT, T, T
2544  0: \x{ad89}\x{11fe}\x{11fe}
2545  0+ LVT, T, T
2546     *These match just the first codepoint (invalid sequence)
2547  0: *
2548  0+ These match just the first codepoint (invalid sequence)
2549     \x{1111}\x{11fe}L, T
2550  0: \x{1111}
2551  0+ \x{11fe}L, T
2552     \x{ae4c}\x{1111}LV, L
2553  0: \x{ae4c}
2554  0+ \x{1111}LV, L
2555     \x{ae4c}\x{ae4c}LV, LV
2556  0: \x{ae4c}
2557  0+ \x{ae4c}LV, LV
2558     \x{ae4c}\x{ad89}LV, LVT
2559  0: \x{ae4c}
2560  0+ \x{ad89}LV, LVT
2561     \x{1169}\x{1111}V, L
2562  0: \x{1169}
2563  0+ \x{1111}V, L
2564     \x{1169}\x{ae4c}V, LV
2565  0: \x{1169}
2566  0+ \x{ae4c}V, LV
2567     \x{1169}\x{ad89}V, LVT
2568  0: \x{1169}
2569  0+ \x{ad89}V, LVT
2570     \x{ad89}\x{1111}LVT, L
2571  0: \x{ad89}
2572  0+ \x{1111}LVT, L
2573     \x{ad89}\x{1169}LVT, V
2574  0: \x{ad89}
2575  0+ \x{1169}LVT, V
2576     \x{ad89}\x{ae4c}LVT, LV
2577  0: \x{ad89}
2578  0+ \x{ae4c}LVT, LV
2579     \x{ad89}\x{ad89}LVT, LVT
2580  0: \x{ad89}
2581  0+ \x{ad89}LVT, LVT
2582     \x{11fe}\x{1111}T, L
2583  0: \x{11fe}
2584  0+ \x{1111}T, L
2585     \x{11fe}\x{1169}T, V
2586  0: \x{11fe}
2587  0+ \x{1169}T, V
2588     \x{11fe}\x{ae4c}T, LV
2589  0: \x{11fe}
2590  0+ \x{ae4c}T, LV
2591     \x{11fe}\x{ad89}T, LVT
2592  0: \x{11fe}
2593  0+ \x{ad89}T, LVT
2594     *Test extend and spacing mark
2595  0: *
2596  0+ Test extend and spacing mark
2597     \x{1111}\x{ae4c}\x{0711}L, LV, extend
2598  0: \x{1111}\x{ae4c}\x{711}
2599  0+ L, LV, extend
2600     \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
2601  0: \x{1111}\x{ae4c}\x{1b04}
2602  0+ L, LV, spacing mark
2603     \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
2604  0: \x{1111}\x{ae4c}\x{1b04}\x{711}\x{1b04}
2605  0+ L, LV, spacing mark, extend, spacing mark
2606     *Test CR, LF, and control
2607  0: *
2608  0+ Test CR, LF, and control
2609     \x0d\x{0711}CR, extend
2610  0: \x{0d}
2611  0+ \x{711}CR, extend
2612     \x0d\x{1b04}CR, spacingmark
2613  0: \x{0d}
2614  0+ \x{1b04}CR, spacingmark
2615     \x0a\x{0711}LF, extend
2616  0: \x{0a}
2617  0+ \x{711}LF, extend
2618     \x0a\x{1b04}LF, spacingmark
2619  0: \x{0a}
2620  0+ \x{1b04}LF, spacingmark
2621     \x0b\x{0711}Control, extend
2622  0: \x{0b}
2623  0+ \x{711}Control, extend
2624     \x09\x{1b04}Control, spacingmark
2625  0: \x{09}
2626  0+ \x{1b04}Control, spacingmark
2627     *There are no Prepend characters, so we can't test Prepend, CR
2628  0: *
2629  0+ There are no Prepend characters, so we can't test Prepend, CR
2630     
2631 /^(?>\X{2})X/utf,aftertext
2632     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2633  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2634  0+ 
2635     
2636 /^\X{2,4}X/utf,aftertext
2637     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2638  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2639  0+ 
2640     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2641  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2642  0+ 
2643     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2644  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2645  0+ 
2646
2647 /^\X{2,4}?X/utf,aftertext
2648     \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2649  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2650  0+ 
2651     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2652  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2653  0+ 
2654     \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2655  0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2656  0+ 
2657
2658 /\X*Z/utf,no_start_optimize
2659 \= Expect no match
2660     A\x{300}
2661 No match
2662
2663 /\X*(.)/utf,no_start_optimize
2664     A\x{1111}\x{ae4c}\x{1169}
2665  0: A\x{1111}
2666  1: \x{1111}
2667
2668 # --------------------------------------------
2669
2670 /\x{1e9e}+/i,utf
2671     \x{1e9e}\x{00df}
2672  0: \x{1e9e}\x{df}
2673
2674 /[z\x{1e9e}]+/i,utf
2675     \x{1e9e}\x{00df}
2676  0: \x{1e9e}\x{df}
2677
2678 /\x{00df}+/i,utf
2679     \x{1e9e}\x{00df}
2680  0: \x{1e9e}\x{df}
2681
2682 /[z\x{00df}]+/i,utf
2683     \x{1e9e}\x{00df}
2684  0: \x{1e9e}\x{df}
2685
2686 /\x{1f88}+/i,utf
2687     \x{1f88}\x{1f80} 
2688  0: \x{1f88}\x{1f80}
2689
2690 /[z\x{1f88}]+/i,utf
2691     \x{1f88}\x{1f80} 
2692  0: \x{1f88}\x{1f80}
2693     
2694 # Check a reference with more than one other case
2695
2696 /^(\x{00b5})\1{2}$/i,utf        
2697     \x{00b5}\x{039c}\x{03bc} 
2698  0: \x{b5}\x{39c}\x{3bc}
2699  1: \x{b5}
2700     
2701 # Characters with more than one other case; test in classes 
2702
2703 /[z\x{00b5}]+/i,utf
2704     \x{00b5}\x{039c}\x{03bc}
2705  0: \x{b5}\x{39c}\x{3bc}
2706
2707 /[z\x{039c}]+/i,utf
2708     \x{00b5}\x{039c}\x{03bc}
2709  0: \x{b5}\x{39c}\x{3bc}
2710
2711 /[z\x{03bc}]+/i,utf
2712     \x{00b5}\x{039c}\x{03bc}
2713  0: \x{b5}\x{39c}\x{3bc}
2714
2715 /[z\x{00c5}]+/i,utf
2716     \x{00c5}\x{00e5}\x{212b}
2717  0: \x{c5}\x{e5}\x{212b}
2718
2719 /[z\x{00e5}]+/i,utf
2720     \x{00c5}\x{00e5}\x{212b}
2721  0: \x{c5}\x{e5}\x{212b}
2722
2723 /[z\x{212b}]+/i,utf
2724     \x{00c5}\x{00e5}\x{212b}
2725  0: \x{c5}\x{e5}\x{212b}
2726
2727 /[z\x{01c4}]+/i,utf
2728     \x{01c4}\x{01c5}\x{01c6}
2729  0: \x{1c4}\x{1c5}\x{1c6}
2730
2731 /[z\x{01c5}]+/i,utf
2732     \x{01c4}\x{01c5}\x{01c6}
2733  0: \x{1c4}\x{1c5}\x{1c6}
2734
2735 /[z\x{01c6}]+/i,utf
2736     \x{01c4}\x{01c5}\x{01c6}
2737  0: \x{1c4}\x{1c5}\x{1c6}
2738
2739 /[z\x{01c7}]+/i,utf
2740     \x{01c7}\x{01c8}\x{01c9}
2741  0: \x{1c7}\x{1c8}\x{1c9}
2742
2743 /[z\x{01c8}]+/i,utf
2744     \x{01c7}\x{01c8}\x{01c9}
2745  0: \x{1c7}\x{1c8}\x{1c9}
2746
2747 /[z\x{01c9}]+/i,utf
2748     \x{01c7}\x{01c8}\x{01c9}
2749  0: \x{1c7}\x{1c8}\x{1c9}
2750
2751 /[z\x{01ca}]+/i,utf
2752     \x{01ca}\x{01cb}\x{01cc}
2753  0: \x{1ca}\x{1cb}\x{1cc}
2754
2755 /[z\x{01cb}]+/i,utf
2756     \x{01ca}\x{01cb}\x{01cc}
2757  0: \x{1ca}\x{1cb}\x{1cc}
2758
2759 /[z\x{01cc}]+/i,utf
2760     \x{01ca}\x{01cb}\x{01cc}
2761  0: \x{1ca}\x{1cb}\x{1cc}
2762
2763 /[z\x{01f1}]+/i,utf
2764     \x{01f1}\x{01f2}\x{01f3}
2765  0: \x{1f1}\x{1f2}\x{1f3}
2766
2767 /[z\x{01f2}]+/i,utf
2768     \x{01f1}\x{01f2}\x{01f3}
2769  0: \x{1f1}\x{1f2}\x{1f3}
2770
2771 /[z\x{01f3}]+/i,utf
2772     \x{01f1}\x{01f2}\x{01f3}
2773  0: \x{1f1}\x{1f2}\x{1f3}
2774
2775 /[z\x{0345}]+/i,utf
2776     \x{0345}\x{0399}\x{03b9}\x{1fbe}
2777  0: \x{345}\x{399}\x{3b9}\x{1fbe}
2778
2779 /[z\x{0399}]+/i,utf
2780     \x{0345}\x{0399}\x{03b9}\x{1fbe}
2781  0: \x{345}\x{399}\x{3b9}\x{1fbe}
2782
2783 /[z\x{03b9}]+/i,utf
2784     \x{0345}\x{0399}\x{03b9}\x{1fbe}
2785  0: \x{345}\x{399}\x{3b9}\x{1fbe}
2786
2787 /[z\x{1fbe}]+/i,utf
2788     \x{0345}\x{0399}\x{03b9}\x{1fbe}
2789  0: \x{345}\x{399}\x{3b9}\x{1fbe}
2790
2791 /[z\x{0392}]+/i,utf
2792     \x{0392}\x{03b2}\x{03d0}
2793  0: \x{392}\x{3b2}\x{3d0}
2794
2795 /[z\x{03b2}]+/i,utf
2796     \x{0392}\x{03b2}\x{03d0}
2797  0: \x{392}\x{3b2}\x{3d0}
2798
2799 /[z\x{03d0}]+/i,utf
2800     \x{0392}\x{03b2}\x{03d0}
2801  0: \x{392}\x{3b2}\x{3d0}
2802
2803 /[z\x{0395}]+/i,utf
2804     \x{0395}\x{03b5}\x{03f5}
2805  0: \x{395}\x{3b5}\x{3f5}
2806
2807 /[z\x{03b5}]+/i,utf
2808     \x{0395}\x{03b5}\x{03f5}
2809  0: \x{395}\x{3b5}\x{3f5}
2810
2811 /[z\x{03f5}]+/i,utf
2812     \x{0395}\x{03b5}\x{03f5}
2813  0: \x{395}\x{3b5}\x{3f5}
2814
2815 /[z\x{0398}]+/i,utf
2816     \x{0398}\x{03b8}\x{03d1}\x{03f4}
2817  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2818
2819 /[z\x{03b8}]+/i,utf
2820     \x{0398}\x{03b8}\x{03d1}\x{03f4}
2821  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2822
2823 /[z\x{03d1}]+/i,utf
2824     \x{0398}\x{03b8}\x{03d1}\x{03f4}
2825  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2826
2827 /[z\x{03f4}]+/i,utf
2828     \x{0398}\x{03b8}\x{03d1}\x{03f4}
2829  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2830
2831 /[z\x{039a}]+/i,utf
2832     \x{039a}\x{03ba}\x{03f0}
2833  0: \x{39a}\x{3ba}\x{3f0}
2834
2835 /[z\x{03ba}]+/i,utf
2836     \x{039a}\x{03ba}\x{03f0}
2837  0: \x{39a}\x{3ba}\x{3f0}
2838
2839 /[z\x{03f0}]+/i,utf
2840     \x{039a}\x{03ba}\x{03f0}
2841  0: \x{39a}\x{3ba}\x{3f0}
2842
2843 /[z\x{03a0}]+/i,utf
2844     \x{03a0}\x{03c0}\x{03d6} 
2845  0: \x{3a0}\x{3c0}\x{3d6}
2846
2847 /[z\x{03c0}]+/i,utf
2848     \x{03a0}\x{03c0}\x{03d6} 
2849  0: \x{3a0}\x{3c0}\x{3d6}
2850
2851 /[z\x{03d6}]+/i,utf
2852     \x{03a0}\x{03c0}\x{03d6} 
2853  0: \x{3a0}\x{3c0}\x{3d6}
2854
2855 /[z\x{03a1}]+/i,utf
2856     \x{03a1}\x{03c1}\x{03f1}
2857  0: \x{3a1}\x{3c1}\x{3f1}
2858
2859 /[z\x{03c1}]+/i,utf
2860     \x{03a1}\x{03c1}\x{03f1}
2861  0: \x{3a1}\x{3c1}\x{3f1}
2862
2863 /[z\x{03f1}]+/i,utf
2864     \x{03a1}\x{03c1}\x{03f1}
2865  0: \x{3a1}\x{3c1}\x{3f1}
2866
2867 /[z\x{03a3}]+/i,utf
2868     \x{03A3}\x{03C2}\x{03C3}
2869  0: \x{3a3}\x{3c2}\x{3c3}
2870
2871 /[z\x{03c2}]+/i,utf
2872     \x{03A3}\x{03C2}\x{03C3}
2873  0: \x{3a3}\x{3c2}\x{3c3}
2874
2875 /[z\x{03c3}]+/i,utf
2876     \x{03A3}\x{03C2}\x{03C3}
2877  0: \x{3a3}\x{3c2}\x{3c3}
2878
2879 /[z\x{03a6}]+/i,utf
2880     \x{03a6}\x{03c6}\x{03d5} 
2881  0: \x{3a6}\x{3c6}\x{3d5}
2882
2883 /[z\x{03c6}]+/i,utf
2884     \x{03a6}\x{03c6}\x{03d5} 
2885  0: \x{3a6}\x{3c6}\x{3d5}
2886
2887 /[z\x{03d5}]+/i,utf
2888     \x{03a6}\x{03c6}\x{03d5} 
2889  0: \x{3a6}\x{3c6}\x{3d5}
2890
2891 /[z\x{03c9}]+/i,utf
2892     \x{03c9}\x{03a9}\x{2126}
2893  0: \x{3c9}\x{3a9}\x{2126}
2894
2895 /[z\x{03a9}]+/i,utf
2896     \x{03c9}\x{03a9}\x{2126}
2897  0: \x{3c9}\x{3a9}\x{2126}
2898
2899 /[z\x{2126}]+/i,utf
2900     \x{03c9}\x{03a9}\x{2126}
2901  0: \x{3c9}\x{3a9}\x{2126}
2902
2903 /[z\x{1e60}]+/i,utf
2904     \x{1e60}\x{1e61}\x{1e9b}
2905  0: \x{1e60}\x{1e61}\x{1e9b}
2906
2907 /[z\x{1e61}]+/i,utf
2908     \x{1e60}\x{1e61}\x{1e9b}
2909  0: \x{1e60}\x{1e61}\x{1e9b}
2910
2911 /[z\x{1e9b}]+/i,utf
2912     \x{1e60}\x{1e61}\x{1e9b}
2913  0: \x{1e60}\x{1e61}\x{1e9b}
2914
2915 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
2916
2917 /[z\x{004b}]+/i,utf
2918     \x{004b}\x{006b}\x{212a}
2919  0: Kk\x{212a}
2920
2921 /[z\x{006b}]+/i,utf
2922     \x{004b}\x{006b}\x{212a}
2923  0: Kk\x{212a}
2924
2925 /[z\x{212a}]+/i,utf
2926     \x{004b}\x{006b}\x{212a}
2927  0: Kk\x{212a}
2928
2929 /[z\x{0053}]+/i,utf
2930     \x{0053}\x{0073}\x{017f}
2931  0: Ss\x{17f}
2932
2933 /[z\x{0073}]+/i,utf
2934     \x{0053}\x{0073}\x{017f}
2935  0: Ss\x{17f}
2936
2937 /[z\x{017f}]+/i,utf
2938     \x{0053}\x{0073}\x{017f}
2939  0: Ss\x{17f}
2940     
2941 # --------------------------------------  
2942
2943 /(ΣΆΜΟΣ) \1/i,utf
2944     ΣΆΜΟΣ ΣΆΜΟΣ
2945  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2946  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2947     ΣΆΜΟΣ σάμος
2948  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2949  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2950     σάμος σάμος
2951  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2952  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2953     σάμος σάμοσ
2954  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
2955  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2956     σάμος ΣΆΜΟΣ  
2957  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2958  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2959
2960 /(σάμος) \1/i,utf
2961     ΣΆΜΟΣ ΣΆΜΟΣ
2962  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2963  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2964     ΣΆΜΟΣ σάμος
2965  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2966  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2967     σάμος σάμος
2968  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2969  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2970     σάμος σάμοσ
2971  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
2972  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2973     σάμος ΣΆΜΟΣ  
2974  0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2975  1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2976
2977 /(ΣΆΜΟΣ) \1*/i,utf
2978     ΣΆΜΟΣ\x20
2979  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} 
2980  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2981     ΣΆΜΟΣ ΣΆΜΟΣσάμοςσάμος
2982  0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}\x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}\x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2983  1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2984
2985 # Perl matches these 
2986
2987 /\x{00b5}+/i,utf
2988     \x{00b5}\x{039c}\x{03bc}
2989  0: \x{b5}\x{39c}\x{3bc}
2990
2991 /\x{039c}+/i,utf
2992     \x{00b5}\x{039c}\x{03bc}
2993  0: \x{b5}\x{39c}\x{3bc}
2994
2995 /\x{03bc}+/i,utf
2996     \x{00b5}\x{039c}\x{03bc}
2997  0: \x{b5}\x{39c}\x{3bc}
2998
2999
3000 /\x{00c5}+/i,utf
3001     \x{00c5}\x{00e5}\x{212b}
3002  0: \x{c5}\x{e5}\x{212b}
3003
3004 /\x{00e5}+/i,utf
3005     \x{00c5}\x{00e5}\x{212b}
3006  0: \x{c5}\x{e5}\x{212b}
3007
3008 /\x{212b}+/i,utf
3009     \x{00c5}\x{00e5}\x{212b}
3010  0: \x{c5}\x{e5}\x{212b}
3011
3012
3013 /\x{01c4}+/i,utf
3014     \x{01c4}\x{01c5}\x{01c6}
3015  0: \x{1c4}\x{1c5}\x{1c6}
3016
3017 /\x{01c5}+/i,utf
3018     \x{01c4}\x{01c5}\x{01c6}
3019  0: \x{1c4}\x{1c5}\x{1c6}
3020
3021 /\x{01c6}+/i,utf
3022     \x{01c4}\x{01c5}\x{01c6}
3023  0: \x{1c4}\x{1c5}\x{1c6}
3024
3025
3026 /\x{01c7}+/i,utf
3027     \x{01c7}\x{01c8}\x{01c9}
3028  0: \x{1c7}\x{1c8}\x{1c9}
3029
3030 /\x{01c8}+/i,utf
3031     \x{01c7}\x{01c8}\x{01c9}
3032  0: \x{1c7}\x{1c8}\x{1c9}
3033
3034 /\x{01c9}+/i,utf
3035     \x{01c7}\x{01c8}\x{01c9}
3036  0: \x{1c7}\x{1c8}\x{1c9}
3037
3038
3039 /\x{01ca}+/i,utf
3040     \x{01ca}\x{01cb}\x{01cc}
3041  0: \x{1ca}\x{1cb}\x{1cc}
3042
3043 /\x{01cb}+/i,utf
3044     \x{01ca}\x{01cb}\x{01cc}
3045  0: \x{1ca}\x{1cb}\x{1cc}
3046
3047 /\x{01cc}+/i,utf
3048     \x{01ca}\x{01cb}\x{01cc}
3049  0: \x{1ca}\x{1cb}\x{1cc}
3050
3051
3052 /\x{01f1}+/i,utf
3053     \x{01f1}\x{01f2}\x{01f3}
3054  0: \x{1f1}\x{1f2}\x{1f3}
3055
3056 /\x{01f2}+/i,utf
3057     \x{01f1}\x{01f2}\x{01f3}
3058  0: \x{1f1}\x{1f2}\x{1f3}
3059
3060 /\x{01f3}+/i,utf
3061     \x{01f1}\x{01f2}\x{01f3}
3062  0: \x{1f1}\x{1f2}\x{1f3}
3063
3064
3065 /\x{0345}+/i,utf
3066     \x{0345}\x{0399}\x{03b9}\x{1fbe}
3067  0: \x{345}\x{399}\x{3b9}\x{1fbe}
3068
3069 /\x{0399}+/i,utf
3070     \x{0345}\x{0399}\x{03b9}\x{1fbe}
3071  0: \x{345}\x{399}\x{3b9}\x{1fbe}
3072
3073 /\x{03b9}+/i,utf
3074     \x{0345}\x{0399}\x{03b9}\x{1fbe}
3075  0: \x{345}\x{399}\x{3b9}\x{1fbe}
3076
3077 /\x{1fbe}+/i,utf
3078     \x{0345}\x{0399}\x{03b9}\x{1fbe}
3079  0: \x{345}\x{399}\x{3b9}\x{1fbe}
3080
3081
3082 /\x{0392}+/i,utf
3083     \x{0392}\x{03b2}\x{03d0}
3084  0: \x{392}\x{3b2}\x{3d0}
3085
3086 /\x{03b2}+/i,utf
3087     \x{0392}\x{03b2}\x{03d0}
3088  0: \x{392}\x{3b2}\x{3d0}
3089
3090 /\x{03d0}+/i,utf
3091     \x{0392}\x{03b2}\x{03d0}
3092  0: \x{392}\x{3b2}\x{3d0}
3093     
3094
3095 /\x{0395}+/i,utf
3096     \x{0395}\x{03b5}\x{03f5}
3097  0: \x{395}\x{3b5}\x{3f5}
3098
3099 /\x{03b5}+/i,utf
3100     \x{0395}\x{03b5}\x{03f5}
3101  0: \x{395}\x{3b5}\x{3f5}
3102
3103 /\x{03f5}+/i,utf
3104     \x{0395}\x{03b5}\x{03f5}
3105  0: \x{395}\x{3b5}\x{3f5}
3106
3107
3108 /\x{0398}+/i,utf
3109     \x{0398}\x{03b8}\x{03d1}\x{03f4}
3110  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3111
3112 /\x{03b8}+/i,utf
3113     \x{0398}\x{03b8}\x{03d1}\x{03f4}
3114  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3115
3116 /\x{03d1}+/i,utf
3117     \x{0398}\x{03b8}\x{03d1}\x{03f4}
3118  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3119
3120 /\x{03f4}+/i,utf
3121     \x{0398}\x{03b8}\x{03d1}\x{03f4}
3122  0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3123     
3124
3125 /\x{039a}+/i,utf
3126     \x{039a}\x{03ba}\x{03f0}
3127  0: \x{39a}\x{3ba}\x{3f0}
3128
3129 /\x{03ba}+/i,utf
3130     \x{039a}\x{03ba}\x{03f0}
3131  0: \x{39a}\x{3ba}\x{3f0}
3132
3133 /\x{03f0}+/i,utf
3134     \x{039a}\x{03ba}\x{03f0}
3135  0: \x{39a}\x{3ba}\x{3f0}
3136     
3137
3138 /\x{03a0}+/i,utf
3139     \x{03a0}\x{03c0}\x{03d6} 
3140  0: \x{3a0}\x{3c0}\x{3d6}
3141
3142 /\x{03c0}+/i,utf
3143     \x{03a0}\x{03c0}\x{03d6} 
3144  0: \x{3a0}\x{3c0}\x{3d6}
3145
3146 /\x{03d6}+/i,utf
3147     \x{03a0}\x{03c0}\x{03d6} 
3148  0: \x{3a0}\x{3c0}\x{3d6}
3149
3150
3151 /\x{03a1}+/i,utf
3152     \x{03a1}\x{03c1}\x{03f1}
3153  0: \x{3a1}\x{3c1}\x{3f1}
3154
3155 /\x{03c1}+/i,utf
3156     \x{03a1}\x{03c1}\x{03f1}
3157  0: \x{3a1}\x{3c1}\x{3f1}
3158
3159 /\x{03f1}+/i,utf
3160     \x{03a1}\x{03c1}\x{03f1}
3161  0: \x{3a1}\x{3c1}\x{3f1}
3162
3163
3164 /\x{03a3}+/i,utf
3165     \x{03A3}\x{03C2}\x{03C3}
3166  0: \x{3a3}\x{3c2}\x{3c3}
3167
3168 /\x{03c2}+/i,utf
3169     \x{03A3}\x{03C2}\x{03C3}
3170  0: \x{3a3}\x{3c2}\x{3c3}
3171
3172 /\x{03c3}+/i,utf
3173     \x{03A3}\x{03C2}\x{03C3}
3174  0: \x{3a3}\x{3c2}\x{3c3}
3175     
3176
3177 /\x{03a6}+/i,utf
3178     \x{03a6}\x{03c6}\x{03d5} 
3179  0: \x{3a6}\x{3c6}\x{3d5}
3180
3181 /\x{03c6}+/i,utf
3182     \x{03a6}\x{03c6}\x{03d5} 
3183  0: \x{3a6}\x{3c6}\x{3d5}
3184
3185 /\x{03d5}+/i,utf
3186     \x{03a6}\x{03c6}\x{03d5} 
3187  0: \x{3a6}\x{3c6}\x{3d5}
3188
3189
3190 /\x{03c9}+/i,utf
3191     \x{03c9}\x{03a9}\x{2126}
3192  0: \x{3c9}\x{3a9}\x{2126}
3193
3194 /\x{03a9}+/i,utf
3195     \x{03c9}\x{03a9}\x{2126}
3196  0: \x{3c9}\x{3a9}\x{2126}
3197
3198 /\x{2126}+/i,utf
3199     \x{03c9}\x{03a9}\x{2126}
3200  0: \x{3c9}\x{3a9}\x{2126}
3201     
3202
3203 /\x{1e60}+/i,utf
3204     \x{1e60}\x{1e61}\x{1e9b}
3205  0: \x{1e60}\x{1e61}\x{1e9b}
3206
3207 /\x{1e61}+/i,utf
3208     \x{1e60}\x{1e61}\x{1e9b}
3209  0: \x{1e60}\x{1e61}\x{1e9b}
3210
3211 /\x{1e9b}+/i,utf
3212     \x{1e60}\x{1e61}\x{1e9b}
3213  0: \x{1e60}\x{1e61}\x{1e9b}
3214     
3215
3216 /\x{1e9e}+/i,utf
3217     \x{1e9e}\x{00df}
3218  0: \x{1e9e}\x{df}
3219
3220 /\x{00df}+/i,utf
3221     \x{1e9e}\x{00df}
3222  0: \x{1e9e}\x{df}
3223     
3224
3225 /\x{1f88}+/i,utf
3226     \x{1f88}\x{1f80} 
3227  0: \x{1f88}\x{1f80}
3228
3229 /\x{1f80}+/i,utf
3230     \x{1f88}\x{1f80} 
3231  0: \x{1f88}\x{1f80}
3232
3233 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK 
3234
3235 /\x{004b}+/i,utf
3236     \x{004b}\x{006b}\x{212a}
3237  0: Kk\x{212a}
3238
3239 /\x{006b}+/i,utf
3240     \x{004b}\x{006b}\x{212a}
3241  0: Kk\x{212a}
3242
3243 /\x{212a}+/i,utf
3244     \x{004b}\x{006b}\x{212a}
3245  0: Kk\x{212a}
3246
3247
3248 /\x{0053}+/i,utf
3249     \x{0053}\x{0073}\x{017f}
3250  0: Ss\x{17f}
3251
3252 /\x{0073}+/i,utf
3253     \x{0053}\x{0073}\x{017f}
3254  0: Ss\x{17f}
3255
3256 /\x{017f}+/i,utf
3257     \x{0053}\x{0073}\x{017f}
3258  0: Ss\x{17f}
3259
3260 /^\p{Any}*\d{4}/utf
3261     1234
3262  0: 1234
3263 \= Expect no match
3264     123 
3265 No match
3266
3267 /^\X*\w{4}/utf
3268     1234
3269  0: 1234
3270 \= Expect no match
3271     123  
3272 No match
3273
3274 /^A\s+Z/utf,ucp
3275     A\x{2005}Z
3276  0: A\x{2005}Z
3277     A\x{85}\x{2005}Z
3278  0: A\x{85}\x{2005}Z
3279
3280 /^A[\s]+Z/utf,ucp
3281     A\x{2005}Z
3282  0: A\x{2005}Z
3283     A\x{85}\x{2005}Z
3284  0: A\x{85}\x{2005}Z
3285
3286 /^[[:graph:]]+$/utf,ucp
3287     Letter:ABC
3288  0: Letter:ABC
3289     Mark:\x{300}\x{1d172}\x{1d17b}
3290  0: Mark:\x{300}\x{1d172}\x{1d17b}
3291     Number:9\x{660}
3292  0: Number:9\x{660}
3293     Punctuation:\x{66a},;
3294  0: Punctuation:\x{66a},;
3295     Symbol:\x{6de}<>\x{fffc}
3296  0: Symbol:\x{6de}<>\x{fffc}
3297     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3298  0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3299     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3300  0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3301     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3302  0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3303     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3304  0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3305     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3306  0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3307     \x{feff}
3308  0: \x{feff}
3309     \x{fff9}\x{fffa}\x{fffb}
3310  0: \x{fff9}\x{fffa}\x{fffb}
3311     \x{110bd}
3312  0: \x{110bd}
3313     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3314  0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3315     \x{e0001}
3316  0: \x{e0001}
3317     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3318  0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3319 \= Expect no match
3320     \x{09}
3321 No match
3322     \x{0a}
3323 No match
3324     \x{1D}
3325 No match
3326     \x{20}
3327 No match
3328     \x{85}
3329 No match
3330     \x{a0}
3331 No match
3332     \x{1680}
3333 No match
3334     \x{2028}
3335 No match
3336     \x{2029}
3337 No match
3338     \x{202f}
3339 No match
3340     \x{2065}
3341 No match
3342     \x{3000}
3343 No match
3344     \x{e0002}
3345 No match
3346     \x{e001f}
3347 No match
3348     \x{e0080} 
3349 No match
3350
3351 /^[[:print:]]+$/utf,ucp
3352     Space: \x{a0}
3353  0: Space: \x{a0}
3354     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3355  0: \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3356     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
3357  0: \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
3358     \x{202f}\x{205f} 
3359  0: \x{202f}\x{205f}
3360     \x{3000}
3361  0: \x{3000}
3362     Letter:ABC
3363  0: Letter:ABC
3364     Mark:\x{300}\x{1d172}\x{1d17b}
3365  0: Mark:\x{300}\x{1d172}\x{1d17b}
3366     Number:9\x{660}
3367  0: Number:9\x{660}
3368     Punctuation:\x{66a},;
3369  0: Punctuation:\x{66a},;
3370     Symbol:\x{6de}<>\x{fffc}
3371  0: Symbol:\x{6de}<>\x{fffc}
3372     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3373  0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3374     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3375  0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3376     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3377  0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3378     \x{202f}
3379  0: \x{202f}
3380     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3381  0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3382     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3383  0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3384     \x{feff}
3385  0: \x{feff}
3386     \x{fff9}\x{fffa}\x{fffb}
3387  0: \x{fff9}\x{fffa}\x{fffb}
3388     \x{110bd}
3389  0: \x{110bd}
3390     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3391  0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3392     \x{e0001}
3393  0: \x{e0001}
3394     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3395  0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3396 \= Expect no match
3397     \x{09}
3398 No match
3399     \x{1D}
3400 No match
3401     \x{85}
3402 No match
3403     \x{2028}
3404 No match
3405     \x{2029}
3406 No match
3407     \x{2065}
3408 No match
3409     \x{e0002}
3410 No match
3411     \x{e001f}
3412 No match
3413     \x{e0080} 
3414 No match
3415
3416 /^[[:punct:]]+$/utf,ucp
3417     \$+<=>^`|~
3418  0: $+<=>^`|~
3419     !\"#%&'()*,-./:;?@[\\]_{}
3420  0: !"#%&'()*,-./:;?@[\]_{}
3421     \x{a1}\x{a7}  
3422  0: \x{a1}\x{a7}
3423     \x{37e} 
3424  0: \x{37e}
3425 \= Expect no match
3426     abcde  
3427 No match
3428
3429 /^[[:^graph:]]+$/utf,ucp
3430     \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
3431  0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{1680}
3432     \x{2028}\x{2029}\x{202f}\x{2065}
3433  0: \x{2028}\x{2029}\x{202f}\x{2065}
3434     \x{3000}\x{e0002}\x{e001f}\x{e0080}
3435  0: \x{3000}\x{e0002}\x{e001f}\x{e0080}
3436 \= Expect no match
3437     Letter:ABC
3438 No match
3439     Mark:\x{300}\x{1d172}\x{1d17b}
3440 No match
3441     Number:9\x{660}
3442 No match
3443     Punctuation:\x{66a},;
3444 No match
3445     Symbol:\x{6de}<>\x{fffc}
3446 No match
3447     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3448 No match
3449     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3450 No match
3451     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3452 No match
3453     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3454 No match
3455     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3456 No match
3457     \x{feff}
3458 No match
3459     \x{fff9}\x{fffa}\x{fffb}
3460 No match
3461     \x{110bd}
3462 No match
3463     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3464 No match
3465     \x{e0001}
3466 No match
3467     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3468 No match
3469
3470 /^[[:^print:]]+$/utf,ucp
3471     \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
3472  0: \x{09}\x{1d}\x{85}\x{2028}\x{2029}\x{2065}
3473     \x{e0002}\x{e001f}\x{e0080}
3474  0: \x{e0002}\x{e001f}\x{e0080}
3475 \= Expect no match
3476     Space: \x{a0}
3477 No match
3478     \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3479 No match
3480     \x{2006}\x{2007}\x{2008}\x{2009}\x{200a} 
3481 No match
3482     \x{202f}\x{205f} 
3483 No match
3484     \x{3000}
3485 No match
3486     Letter:ABC
3487 No match
3488     Mark:\x{300}\x{1d172}\x{1d17b}
3489 No match
3490     Number:9\x{660}
3491 No match
3492     Punctuation:\x{66a},;
3493 No match
3494     Symbol:\x{6de}<>\x{fffc}
3495 No match
3496     Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3497 No match
3498     \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3499 No match
3500     \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3501 No match
3502     \x{202f}
3503 No match
3504     \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3505 No match
3506     \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3507 No match
3508     \x{feff}
3509 No match
3510     \x{fff9}\x{fffa}\x{fffb}
3511 No match
3512     \x{110bd}
3513 No match
3514     \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3515 No match
3516     \x{e0001}
3517 No match
3518     \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3519 No match
3520
3521 /^[[:^punct:]]+$/utf,ucp
3522     abcde  
3523  0: abcde
3524 \= Expect no match
3525     \$+<=>^`|~
3526 No match
3527     !\"#%&'()*,-./:;?@[\\]_{}
3528 No match
3529     \x{a1}\x{a7}  
3530 No match
3531     \x{37e} 
3532 No match
3533
3534 /[RST]+/i,utf,ucp
3535     Ss\x{17f}
3536  0: Ss\x{17f}
3537     
3538 /[R-T]+/i,utf,ucp
3539     Ss\x{17f}
3540  0: Ss\x{17f}
3541
3542 /[q-u]+/i,utf,ucp
3543     Ss\x{17f}
3544  0: Ss\x{17f}
3545
3546 /^s?c/im,utf
3547     scat
3548  0: sc
3549     
3550 # The next four tests are for repeated caseless back references when the 
3551 # code unit length of the matched text is different to that of the original
3552 # group in the UTF-8 case.
3553
3554 /^(\x{23a})\1*(.)/i,utf
3555     \x{23a}\x{23a}\x{23a}\x{23a}
3556  0: \x{23a}\x{23a}\x{23a}\x{23a}
3557  1: \x{23a}
3558  2: \x{23a}
3559     \x{23a}\x{2c65}\x{2c65}\x{2c65}
3560  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3561  1: \x{23a}
3562  2: \x{2c65}
3563     \x{23a}\x{23a}\x{2c65}\x{23a}
3564  0: \x{23a}\x{23a}\x{2c65}\x{23a}
3565  1: \x{23a}
3566  2: \x{23a}
3567
3568 /^(\x{23a})\1*(..)/i,utf
3569     \x{23a}\x{2c65}\x{2c65}\x{2c65}
3570  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3571  1: \x{23a}
3572  2: \x{2c65}\x{2c65}
3573     \x{23a}\x{23a}\x{2c65}\x{23a}
3574  0: \x{23a}\x{23a}\x{2c65}\x{23a}
3575  1: \x{23a}
3576  2: \x{2c65}\x{23a}
3577
3578 /^(\x{23a})\1*(...)/i,utf
3579     \x{23a}\x{2c65}\x{2c65}\x{2c65}
3580  0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3581  1: \x{23a}
3582  2: \x{2c65}\x{2c65}\x{2c65}
3583     \x{23a}\x{23a}\x{2c65}\x{23a}
3584  0: \x{23a}\x{23a}\x{2c65}\x{23a}
3585  1: \x{23a}
3586  2: \x{23a}\x{2c65}\x{23a}
3587
3588 /^(\x{23a})\1*(....)/i,utf
3589 \= Expect no match
3590     \x{23a}\x{2c65}\x{2c65}\x{2c65}
3591 No match
3592     \x{23a}\x{23a}\x{2c65}\x{23a}
3593 No match
3594
3595 /[A-`]/i,utf
3596     abcdefghijklmno
3597  0: a
3598
3599 "[\S\V\H]"utf
3600
3601 /[^\p{Any}]*+x/utf
3602     x
3603  0: x
3604
3605 /[[:punct:]]/utf,ucp
3606     \x{b4} 
3607 No match
3608
3609 /[[:^ascii:]]/utf,ucp
3610     \x{100}
3611  0: \x{100}
3612     \x{200}
3613  0: \x{200}
3614     \x{300}
3615  0: \x{300}
3616     \x{37e}
3617  0: \x{37e}
3618 \= Expect no match     
3619     aa
3620 No match
3621     99
3622 No match
3623     
3624 /[[:^ascii:]\w]/utf,ucp
3625     aa
3626  0: a
3627     99
3628  0: 9
3629     gg
3630  0: g
3631     \x{100}
3632  0: \x{100}
3633     \x{200}
3634  0: \x{200}
3635     \x{300}
3636  0: \x{300}
3637     \x{37e}
3638  0: \x{37e}
3639
3640 /[\w[:^ascii:]]/utf,ucp
3641     aa
3642  0: a
3643     99
3644  0: 9
3645     gg
3646  0: g
3647     \x{100}
3648  0: \x{100}
3649     \x{200}
3650  0: \x{200}
3651     \x{300}
3652  0: \x{300}
3653     \x{37e}
3654  0: \x{37e}
3655
3656 /[^[:ascii:]\W]/utf,ucp
3657     \x{100}
3658  0: \x{100}
3659     \x{200}
3660  0: \x{200}
3661 \= Expect no match     
3662     aa
3663 No match
3664     99
3665 No match
3666     gg
3667 No match
3668     \x{37e}
3669 No match
3670
3671 /[^[:^ascii:]\d]/utf,ucp
3672     a
3673  0: a
3674     ~
3675  0: ~
3676     \a
3677  0: \x{07}
3678     \x{7f}
3679  0: \x{7f}
3680 \= Expect no match
3681     0
3682 No match
3683     \x{389}
3684 No match
3685     \x{20ac}
3686 No match
3687
3688 /(?=.*b)\pL/
3689     11bb
3690  0: b
3691     
3692 /(?(?=.*b)(?=.*b)\pL|.*c)/
3693     11bb
3694  0: b
3695
3696 /^\x{123}+?$/utf,no_auto_possess
3697     \x{123}\x{123}\x{123}
3698  0: \x{123}\x{123}\x{123}
3699
3700 /^\x{123}+?$/i,utf,no_auto_possess
3701     \x{123}\x{122}\x{123}
3702  0: \x{123}\x{122}\x{123}
3703 \= Expect no match     
3704     \x{123}\x{124}\x{123}
3705 No match
3706     
3707 /\N{U+1234}/utf
3708     \x{1234}
3709  0: \x{1234}
3710
3711 /[\N{U+1234}]/utf
3712     \x{1234}
3713  0: \x{1234}
3714     
3715 # Test the full list of Unicode "Pattern White Space" characters that are to
3716 # be ignored by /x. The pattern lines below may show up oddly in text editors
3717 # or when listed to the screen. Note that characters such as U+2002, which are
3718 # matched as space by \h and \v are *not* "Pattern White Space".
3719
3720 /A\85‎‏

B/x,utf
3721     AB
3722  0: AB
3723
3724 /A B/x,utf
3725     A\x{2002}B
3726  0: A\x{2002}B
3727 \= Expect no match
3728     AB
3729 No match
3730     
3731 # ------- 
3732
3733 /[^\x{100}-\x{ffff}]*[\x80-\xff]/utf
3734     \x{99}\x{99}\x{99}
3735  0: \x{99}\x{99}\x{99}
3736
3737 /[^\x{100}-\x{ffff}ABC]*[\x80-\xff]/utf
3738     \x{99}\x{99}\x{99}
3739  0: \x{99}\x{99}\x{99}
3740
3741 /[^\x{100}-\x{ffff}]*[\x80-\xff]/i,utf
3742     \x{99}\x{99}\x{99}
3743  0: \x{99}\x{99}\x{99}
3744
3745 # End of testinput4