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
18No 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
32No match
33    ac\ncb
34No 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
108No match
109    ac\ncb
110No 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
130No 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
150No 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
176No match
177    axxxxxxbcdefghijb
178No 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
204No match
205    axxxxxxbcdefghijb
206No match
207
208/^[a\x{c0}]/utf
209\= Expect no match
210    \x{100}
211No 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
230No 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}
239No 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
250No 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
374No match
375
376/\D{2,3}/utf
377    12abcd34
378 0: abc
379    12ab34
380 0: ab
381\= Expect no match
382    1234
383No match
384    12a34
385No match
386
387/\D{2,3}?/utf
388    12abcd34
389 0: ab
390    12ab34
391 0: ab
392\= Expect no match
393    1234
394No match
395    12a34
396No 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
409No match
410
411/\d{2,3}?/utf
412    12abcd34
413 0: 12
414    1234abcd
415 0: 12
416\= Expect no match
417    1.4
418No match
419
420/\S+/utf
421    12abcd34
422 0: 12abcd34
423\= Expect no match
424    \    \
425No match
426
427/\S{2,3}/utf
428    12abcd34
429 0: 12a
430    1234abcd
431 0: 123
432\= Expect no match
433    \     \
434No match
435
436/\S{2,3}?/utf
437    12abcd34
438 0: 12
439    1234abcd
440 0: 12
441\= Expect no match
442    \     \
443No 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
459No 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
470No match
471
472/\w+/utf
473    12      34
474 0: 12
475\= Expect no match
476    +++=*!
477No 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
486No 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
495No match
496
497/\W+/utf
498    12====34
499 0: ====
500\= Expect no match
501    abcd
502No 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
511No 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
520No 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
635No 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
646No 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
653No match
654    X
655No 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
666No match
667    \x{200}X
668No 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
679No match
680    \x{200}X
681No match
682    QX
683No 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
692No match
693    \x{150}X
694No match
695    \x{200}X
696No 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}
707No match
708    y
709No 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
732No match
733
734/^[ac\x{100}]*b/utf
735\= Expect no match
736  xb
737No match
738
739/^[^x]*b/i,utf
740\= Expect no match
741  xb
742No match
743
744/^[^x]*b/utf
745\= Expect no match
746  xb
747No match
748
749/^\d*b/utf
750\= Expect no match
751  xb
752No 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
791792 0: \x{1234}
793
794/^\ሴ/utf
795796 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
1026No match
1027
1028/(abc)\1/utf
1029\= Expect no match
1030   abc
1031No match
1032
1033/a(*:a\x{1234}b)/utf,mark
1034    abc
1035 0: a
1036MK: a\x{1234}b
1037
1038/a(*:a£b)/utf,mark
1039    abc
1040 0: a
1041MK: 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
1184No match
1185
1186/^[^b]*\w{4}/utf
1187    aaaa
1188 0: aaaa
1189\= Expect no match
1190    aaa
1191No match
1192
1193/^[^b]*\w{4}/i,utf
1194    aaaa
1195 0: aaaa
1196\= Expect no match
1197    aaa
1198No 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}
1205No 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}
1212No 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!\$ <
1235No match
1236
1237/^\PC/utf
1238    X
1239 0: X
1240\= Expect no match
1241    \x7f
1242No match
1243
1244/^\PL/utf
1245    9
1246 0: 9
1247\= Expect no match
1248    \x{c0}
1249No match
1250
1251/^\PM/utf
1252    X
1253 0: X
1254\= Expect no match
1255    \x{30f}
1256No match
1257
1258/^\PN/utf
1259    X
1260 0: X
1261\= Expect no match
1262    \x{660}
1263No match
1264
1265/^\PP/utf
1266    X
1267 0: X
1268\= Expect no match
1269    \x{66c}
1270No match
1271
1272/^\PS/utf
1273    X
1274 0: X
1275\= Expect no match
1276    \x{f01}
1277No match
1278
1279/^\PZ/utf
1280    X
1281 0: X
1282\= Expect no match
1283    \x{1680}
1284No 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}
1293No match
1294
1295/^\p{Cf}/utf
1296    \x{601}
1297 0: \x{601}
1298\= Expect no match
1299    \x{09f}
1300No match
1301
1302/^\p{Cn}/utf
1303    \x{e0000}
1304 0: \x{e0000}
1305\= Expect no match
1306    \x{09f}
1307No match
1308
1309/^\p{Co}/utf
1310    \x{f8ff}
1311 0: \x{f8ff}
1312\= Expect no match
1313    \x{09f}
1314No match
1315
1316/^\p{Ll}/utf
1317    a
1318 0: a
1319\= Expect no match
1320    Z
1321No match
1322    \x{e000}
1323No match
1324
1325/^\p{Lm}/utf
1326    \x{2b0}
1327 0: \x{2b0}
1328\= Expect no match
1329    a
1330No 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
1347No match
1348    \x{2b0}
1349No match
1350    \x{4db6}
1351No match
1352
1353/^\p{Lt}/utf
1354    \x{1c5}
1355 0: \x{1c5}
1356\= Expect no match
1357    a
1358No match
1359    \x{2b0}
1360No match
1361
1362/^\p{Lu}/utf
1363    A
1364 0: A
1365\= Expect no match
1366    \x{2b0}
1367No match
1368
1369/^\p{Mc}/utf
1370    \x{903}
1371 0: \x{903}
1372\= Expect no match
1373    X
1374No match
1375    \x{300}
1376No match
1377
1378/^\p{Me}/utf
1379    \x{488}
1380 0: \x{488}
1381\= Expect no match
1382    X
1383No match
1384    \x{903}
1385No match
1386    \x{300}
1387No match
1388
1389/^\p{Mn}/utf
1390    \x{300}
1391 0: \x{300}
1392\= Expect no match
1393    X
1394No match
1395    \x{903}
1396No 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
1407No match
1408
1409/^\p{Nl}/utf
1410    \x{16ee}
1411 0: \x{16ee}
1412\= Expect no match
1413    X
1414No match
1415    \x{966}
1416No 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
1425No match
1426    \x{16ee}
1427No match
1428
1429/^\p{Pc}/utf
1430    \x5f
1431 0: _
1432    \x{203f}
1433 0: \x{203f}
1434\= Expect no match
1435    X
1436No match
1437    -
1438No match
1439    \x{58a}
1440No match
1441
1442/^\p{Pd}/utf
1443    -
1444 0: -
1445    \x{58a}
1446 0: \x{58a}
1447\= Expect no match
1448    X
1449No match
1450    \x{203f}
1451No 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
1464No match
1465    \x{203f}
1466No match
1467    (
1468No match
1469    [
1470No match
1471    {
1472No match
1473    \x{f3c}
1474No 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
1483No match
1484    \x{203f}
1485No 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
1494No match
1495    \x{203f}
1496No match
1497
1498/^\p{Po}/utf
1499    !
1500 0: !
1501    \x{37e}
1502 0: \x{37e}
1503\= Expect no match
1504    X
1505No match
1506    \x{203f}
1507No 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
1520No match
1521    )
1522No match
1523    ]
1524No match
1525    }
1526No match
1527    \x{f3b}
1528No match
1529
1530/^\p{Sk}/utf
1531    \x{2c2}
1532 0: \x{2c2}
1533\= Expect no match
1534    X
1535No match
1536    \x{9f2}
1537No match
1538
1539/^\p{Sm}+/utf
1540    +<|~\x{ac}\x{2044}
1541 0: +<|~\x{ac}\x{2044}
1542\= Expect no match
1543    X
1544No match
1545    \x{9f2}
1546No 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
1555No match
1556    \x{9f2}
1557No match
1558
1559/^\p{Zl}/utf
1560    \x{2028}
1561 0: \x{2028}
1562\= Expect no match
1563    X
1564No match
1565    \x{2029}
1566No match
1567
1568/^\p{Zp}/utf
1569    \x{2029}
1570 0: \x{2029}
1571\= Expect no match
1572    X
1573No match
1574    \x{2028}
1575No 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
1645No 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
1656No match
1657    XYZ
1658No 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
1669No match
1670
1671/[\P{Nd}]+/utf
1672    abcd
1673 0: abcd
1674\= Expect no match
1675    1234
1676No match
1677
1678/\D+/utf
1679    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1680 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1681\= Expect no match
1682    11111111111111111111111111111111111111111111111111111111111111111111111
1683No match
1684
1685/\P{Nd}+/utf
1686    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1687 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1688\= Expect no match
1689    11111111111111111111111111111111111111111111111111111111111111111111111
1690No match
1691
1692/[\D]+/utf
1693    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1694 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1695\= Expect no match
1696    11111111111111111111111111111111111111111111111111111111111111111111111
1697No match
1698
1699/[\P{Nd}]+/utf
1700    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1701 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1702\= Expect no match
1703    11111111111111111111111111111111111111111111111111111111111111111111111
1704No match
1705
1706/[\D\P{Nd}]+/utf
1707    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1708 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1709\= Expect no match
1710    11111111111111111111111111111111111111111111111111111111111111111111111
1711No 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
1732No match
1733
1734/\p{Ll}/utf
1735    a
1736 0: a
1737    Az
1738 0: z
1739\= Expect no match
1740    ABC
1741No 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}
1748No match
1749    A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1750No match
1751    A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1752No match
1753    A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1754No match
1755    A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1756No 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}
1835No 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}
1880No match
1881
1882/^\P{Katakana}+/utf
1883    \x{3105}
1884 0: \x{3105}
1885\= Expect no match
1886    \x{30ff}
1887No 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}
1896No match
1897
1898/^[\P{Yi}]/utf
1899    \x{2f800}
1900 0: \x{2f800}
1901\= Expect no match
1902    \x{a014}
1903No match
1904    \x{a4c6}
1905No 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
1914No match
1915
1916/^\P{Any}X/utf
1917\= Expect no match
1918    AX
1919No 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
1930No match
1931
1932/^\P{Any}?X/utf
1933    XYZ
1934 0: X
1935\= Expect no match
1936    AXYZ
1937No match
1938    \x{1234}XYZ
1939No match
1940    ABXYZ
1941No 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
1952No match
1953
1954/^\P{Any}+X/utf
1955\= Expect no match
1956    AXYZ
1957No match
1958    \x{1234}XYZ
1959No match
1960    A\x{1234}XYZ
1961No match
1962    XYZ
1963No 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
1980No match
1981    \x{1234}XYZ
1982No match
1983    A\x{1234}XYZ
1984No 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
1993No match
1994
1995/^[\P{Any}]X/utf
1996\= Expect no match
1997    AX
1998No 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
2009No match
2010
2011/^[\P{Any}]?X/utf
2012    XYZ
2013 0: X
2014\= Expect no match
2015    AXYZ
2016No match
2017    \x{1234}XYZ
2018No match
2019    ABXYZ
2020No 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
2031No match
2032
2033/^[\P{Any}]+X/utf
2034\= Expect no match
2035    AXYZ
2036No match
2037    \x{1234}XYZ
2038No match
2039    A\x{1234}XYZ
2040No match
2041    XYZ
2042No 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
2059No match
2060    \x{1234}XYZ
2061No match
2062    A\x{1234}XYZ
2063No 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
2080No match
2081    \x{1234}\n\r\x{3456}xyz
2082No 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
2093No match
2094    \x{2b0}XY
2095No match
2096    !XY
2097No 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
2108No match
2109    \x{2b0}XY
2110No match
2111    !XY
2112No 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
2127No match
2128    \x{2b0}XY
2129No match
2130    !XY
2131No 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
2146No match
2147    \x{2b0}XY
2148No match
2149    !XY
2150No 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
2165No match
2166    \x{2b0}XY
2167No match
2168    !XY
2169No 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
2184No match
2185    \x{2b0}XY
2186No match
2187    !XY
2188No 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
2199No match
2200    AXY
2201No 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
2212No match
2213    AXY
2214No 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
2247No match
2248
2249/\X?\d/
2250\= Expect no match
2251    \x8aBCD
2252No match
2253
2254/\P{L}?\d/
2255\= Expect no match
2256    \x8aBCD
2257No 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\= Expect no match
2297    \x{650}
2298No match
2299    \x{651}
2300No match
2301    \x{652}
2302No match
2303    \x{653}
2304No match
2305    \x{654}
2306No match
2307    \x{655}
2308No match
2309
2310/^\p{Cyrillic}/utf
2311    \x{1d2b}
2312 0: \x{1d2b}
2313
2314/^\p{Common}/utf
2315    \x{589}
2316 0: \x{589}
2317    \x{60c}
2318 0: \x{60c}
2319    \x{61f}
2320 0: \x{61f}
2321    \x{964}
2322 0: \x{964}
2323    \x{965}
2324 0: \x{965}
2325
2326/^\p{Inherited}/utf
2327    \x{64b}
2328 0: \x{64b}
2329    \x{654}
2330 0: \x{654}
2331    \x{655}
2332 0: \x{655}
2333    \x{200c}
2334 0: \x{200c}
2335\= Expect no match
2336    \x{64a}
2337No match
2338    \x{656}
2339No match
2340
2341/^\p{Shavian}/utf
2342    \x{10450}
2343 0: \x{10450}
2344    \x{1047f}
2345 0: \x{1047f}
2346
2347/^\p{Deseret}/utf
2348    \x{10400}
2349 0: \x{10400}
2350    \x{1044f}
2351 0: \x{1044f}
2352
2353/^\p{Osmanya}/utf
2354    \x{10480}
2355 0: \x{10480}
2356    \x{1049d}
2357 0: \x{1049d}
2358    \x{104a0}
2359 0: \x{104a0}
2360    \x{104a9}
2361 0: \x{104a9}
2362\= Expect no match
2363    \x{1049e}
2364No match
2365    \x{1049f}
2366No match
2367    \x{104aa}
2368No match
2369
2370/\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
2371    \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
2372 0: \x{102a4}\x{aa52}\x{a91d}\x{1c46}\x{10283}\x{1092e}\x{1c6b}\x{a93b}\x{a8bf}\x{1ba0}\x{a50a}
2373
2374/\x{a77d}\x{1d79}/i,utf
2375    \x{a77d}\x{1d79}
2376 0: \x{a77d}\x{1d79}
2377    \x{1d79}\x{a77d}
2378 0: \x{1d79}\x{a77d}
2379
2380/\x{a77d}\x{1d79}/utf
2381    \x{a77d}\x{1d79}
2382 0: \x{a77d}\x{1d79}
2383\= Expect no match
2384    \x{1d79}\x{a77d}
2385No match
2386
2387/(A)\1/i,utf
2388    AA
2389 0: AA
2390 1: A
2391    Aa
2392 0: Aa
2393 1: A
2394    aa
2395 0: aa
2396 1: a
2397    aA
2398 0: aA
2399 1: a
2400
2401/(\x{10a})\1/i,utf
2402    \x{10a}\x{10a}
2403 0: \x{10a}\x{10a}
2404 1: \x{10a}
2405    \x{10a}\x{10b}
2406 0: \x{10a}\x{10b}
2407 1: \x{10a}
2408    \x{10b}\x{10b}
2409 0: \x{10b}\x{10b}
2410 1: \x{10b}
2411    \x{10b}\x{10a}
2412 0: \x{10b}\x{10a}
2413 1: \x{10b}
2414
2415# The next two tests are for property support in non-UTF mode
2416
2417/(?:\p{Lu}|\x20)+/
2418    \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
2419 0: A P\xc2T\xc9 TODAY
2420
2421/[\p{Lu}\x20]+/
2422    \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
2423 0: A P\xc2T\xc9 TODAY
2424
2425/\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
2426    \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}
2427 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}
2428
2429/^\w+/utf,ucp
2430    Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2431 0: Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2432
2433/^[[:xdigit:]]*/utf,ucp
2434    1a\x{660}\x{bef}\x{16ee}
2435 0: 1a
2436
2437/^\d+/utf,ucp
2438    1\x{660}\x{bef}\x{16ee}
2439 0: 1\x{660}\x{bef}
2440
2441/^[[:digit:]]+/utf,ucp
2442    1\x{660}\x{bef}\x{16ee}
2443 0: 1\x{660}\x{bef}
2444
2445/^>\s+/utf,ucp
2446    >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
2447 0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
2448
2449/^>\pZ+/utf,ucp
2450    >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
2451 0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}
2452
2453/^>[[:space:]]*/utf,ucp
2454    >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
2455 0: > \x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{09}\x{0b}
2456
2457/^>[[:blank:]]*/utf,ucp
2458    >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
2459 0: > \x{a0}\x{1680}\x{2000}\x{202f}\x{09}
2460
2461/^[[:alpha:]]*/utf,ucp
2462    Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
2463 0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
2464
2465/^[[:alnum:]]*/utf,ucp
2466    Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2467 0: Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
2468
2469/^[[:cntrl:]]*/utf,ucp
2470    \x{0}\x{09}\x{1f}\x{7f}\x{9f}
2471 0: \x{00}\x{09}\x{1f}\x{7f}\x{9f}
2472
2473/^[[:graph:]]*/utf,ucp
2474    A\x{a1}\x{a0}
2475 0: A\x{a1}
2476
2477/^[[:print:]]*/utf,ucp
2478    A z\x{a0}\x{a1}
2479 0: A z\x{a0}\x{a1}
2480
2481/^[[:punct:]]*/utf,ucp
2482    .+\x{a1}\x{a0}
2483 0: .+\x{a1}
2484
2485/\p{Zs}*?\R/
2486\= Expect no match
2487    a\xFCb
2488No match
2489
2490/\p{Zs}*\R/
2491\= Expect no match
2492    a\xFCb
2493No match
2494
2495/ⱥ/i,utf
24962497 0: \x{2c65}
2498    Ⱥx
2499 0: \x{23a}
2500    Ⱥ
2501 0: \x{23a}
2502
2503/[ⱥ]/i,utf
25042505 0: \x{2c65}
2506    Ⱥx
2507 0: \x{23a}
2508    Ⱥ
2509 0: \x{23a}
2510
2511/Ⱥ/i,utf
2512    Ⱥ
2513 0: \x{23a}
25142515 0: \x{2c65}
2516
2517# These are tests for extended grapheme clusters
2518
2519/^\X/utf,aftertext
2520    G\x{34e}\x{34e}X
2521 0: G\x{34e}\x{34e}
2522 0+ X
2523    \x{34e}\x{34e}X
2524 0: \x{34e}\x{34e}
2525 0+ X
2526    \x04X
2527 0: \x{04}
2528 0+ X
2529    \x{1100}X
2530 0: \x{1100}
2531 0+ X
2532    \x{1100}\x{34e}X
2533 0: \x{1100}\x{34e}
2534 0+ X
2535    \x{1b04}\x{1b04}X
2536 0: \x{1b04}\x{1b04}
2537 0+ X
2538    *These match up to the roman letters
2539 0: *
2540 0+ These match up to the roman letters
2541    \x{1111}\x{1111}L,L
2542 0: \x{1111}\x{1111}
2543 0+ L,L
2544    \x{1111}\x{1111}\x{1169}L,L,V
2545 0: \x{1111}\x{1111}\x{1169}
2546 0+ L,L,V
2547    \x{1111}\x{ae4c}L, LV
2548 0: \x{1111}\x{ae4c}
2549 0+ L, LV
2550    \x{1111}\x{ad89}L, LVT
2551 0: \x{1111}\x{ad89}
2552 0+ L, LVT
2553    \x{1111}\x{ae4c}\x{1169}L, LV, V
2554 0: \x{1111}\x{ae4c}\x{1169}
2555 0+ L, LV, V
2556    \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
2557 0: \x{1111}\x{ae4c}\x{1169}\x{1169}
2558 0+ L, LV, V, V
2559    \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
2560 0: \x{1111}\x{ae4c}\x{1169}\x{11fe}
2561 0+ L, LV, V, T
2562    \x{1111}\x{ad89}\x{11fe}L, LVT, T
2563 0: \x{1111}\x{ad89}\x{11fe}
2564 0+ L, LVT, T
2565    \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
2566 0: \x{1111}\x{ad89}\x{11fe}\x{11fe}
2567 0+ L, LVT, T, T
2568    \x{ad89}\x{11fe}\x{11fe}LVT, T, T
2569 0: \x{ad89}\x{11fe}\x{11fe}
2570 0+ LVT, T, T
2571    *These match just the first codepoint (invalid sequence)
2572 0: *
2573 0+ These match just the first codepoint (invalid sequence)
2574    \x{1111}\x{11fe}L, T
2575 0: \x{1111}
2576 0+ \x{11fe}L, T
2577    \x{ae4c}\x{1111}LV, L
2578 0: \x{ae4c}
2579 0+ \x{1111}LV, L
2580    \x{ae4c}\x{ae4c}LV, LV
2581 0: \x{ae4c}
2582 0+ \x{ae4c}LV, LV
2583    \x{ae4c}\x{ad89}LV, LVT
2584 0: \x{ae4c}
2585 0+ \x{ad89}LV, LVT
2586    \x{1169}\x{1111}V, L
2587 0: \x{1169}
2588 0+ \x{1111}V, L
2589    \x{1169}\x{ae4c}V, LV
2590 0: \x{1169}
2591 0+ \x{ae4c}V, LV
2592    \x{1169}\x{ad89}V, LVT
2593 0: \x{1169}
2594 0+ \x{ad89}V, LVT
2595    \x{ad89}\x{1111}LVT, L
2596 0: \x{ad89}
2597 0+ \x{1111}LVT, L
2598    \x{ad89}\x{1169}LVT, V
2599 0: \x{ad89}
2600 0+ \x{1169}LVT, V
2601    \x{ad89}\x{ae4c}LVT, LV
2602 0: \x{ad89}
2603 0+ \x{ae4c}LVT, LV
2604    \x{ad89}\x{ad89}LVT, LVT
2605 0: \x{ad89}
2606 0+ \x{ad89}LVT, LVT
2607    \x{11fe}\x{1111}T, L
2608 0: \x{11fe}
2609 0+ \x{1111}T, L
2610    \x{11fe}\x{1169}T, V
2611 0: \x{11fe}
2612 0+ \x{1169}T, V
2613    \x{11fe}\x{ae4c}T, LV
2614 0: \x{11fe}
2615 0+ \x{ae4c}T, LV
2616    \x{11fe}\x{ad89}T, LVT
2617 0: \x{11fe}
2618 0+ \x{ad89}T, LVT
2619    *Test extend and spacing mark
2620 0: *
2621 0+ Test extend and spacing mark
2622    \x{1111}\x{ae4c}\x{0711}L, LV, extend
2623 0: \x{1111}\x{ae4c}\x{711}
2624 0+ L, LV, extend
2625    \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
2626 0: \x{1111}\x{ae4c}\x{1b04}
2627 0+ L, LV, spacing mark
2628    \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
2629 0: \x{1111}\x{ae4c}\x{1b04}\x{711}\x{1b04}
2630 0+ L, LV, spacing mark, extend, spacing mark
2631    *Test CR, LF, and control
2632 0: *
2633 0+ Test CR, LF, and control
2634    \x0d\x{0711}CR, extend
2635 0: \x{0d}
2636 0+ \x{711}CR, extend
2637    \x0d\x{1b04}CR, spacingmark
2638 0: \x{0d}
2639 0+ \x{1b04}CR, spacingmark
2640    \x0a\x{0711}LF, extend
2641 0: \x{0a}
2642 0+ \x{711}LF, extend
2643    \x0a\x{1b04}LF, spacingmark
2644 0: \x{0a}
2645 0+ \x{1b04}LF, spacingmark
2646    \x0b\x{0711}Control, extend
2647 0: \x{0b}
2648 0+ \x{711}Control, extend
2649    \x09\x{1b04}Control, spacingmark
2650 0: \x{09}
2651 0+ \x{1b04}Control, spacingmark
2652    *There are no Prepend characters, so we can't test Prepend, CR
2653 0: *
2654 0+ There are no Prepend characters, so we can't test Prepend, CR
2655
2656/^(?>\X{2})X/utf,aftertext
2657    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2658 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2659 0+
2660
2661/^\X{2,4}X/utf,aftertext
2662    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2663 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2664 0+
2665    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2666 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2667 0+
2668    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2669 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2670 0+
2671
2672/^\X{2,4}?X/utf,aftertext
2673    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2674 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2675 0+
2676    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2677 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2678 0+
2679    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2680 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
2681 0+
2682
2683/\X*Z/utf,no_start_optimize
2684\= Expect no match
2685    A\x{300}
2686No match
2687
2688/\X*(.)/utf,no_start_optimize
2689    A\x{1111}\x{ae4c}\x{1169}
2690 0: A\x{1111}
2691 1: \x{1111}
2692
2693# --------------------------------------------
2694
2695/\x{1e9e}+/i,utf
2696    \x{1e9e}\x{00df}
2697 0: \x{1e9e}\x{df}
2698
2699/[z\x{1e9e}]+/i,utf
2700    \x{1e9e}\x{00df}
2701 0: \x{1e9e}\x{df}
2702
2703/\x{00df}+/i,utf
2704    \x{1e9e}\x{00df}
2705 0: \x{1e9e}\x{df}
2706
2707/[z\x{00df}]+/i,utf
2708    \x{1e9e}\x{00df}
2709 0: \x{1e9e}\x{df}
2710
2711/\x{1f88}+/i,utf
2712    \x{1f88}\x{1f80}
2713 0: \x{1f88}\x{1f80}
2714
2715/[z\x{1f88}]+/i,utf
2716    \x{1f88}\x{1f80}
2717 0: \x{1f88}\x{1f80}
2718
2719# Characters with more than one other case; test in classes
2720
2721/[z\x{00b5}]+/i,utf
2722    \x{00b5}\x{039c}\x{03bc}
2723 0: \x{b5}\x{39c}\x{3bc}
2724
2725/[z\x{039c}]+/i,utf
2726    \x{00b5}\x{039c}\x{03bc}
2727 0: \x{b5}\x{39c}\x{3bc}
2728
2729/[z\x{03bc}]+/i,utf
2730    \x{00b5}\x{039c}\x{03bc}
2731 0: \x{b5}\x{39c}\x{3bc}
2732
2733/[z\x{00c5}]+/i,utf
2734    \x{00c5}\x{00e5}\x{212b}
2735 0: \x{c5}\x{e5}\x{212b}
2736
2737/[z\x{00e5}]+/i,utf
2738    \x{00c5}\x{00e5}\x{212b}
2739 0: \x{c5}\x{e5}\x{212b}
2740
2741/[z\x{212b}]+/i,utf
2742    \x{00c5}\x{00e5}\x{212b}
2743 0: \x{c5}\x{e5}\x{212b}
2744
2745/[z\x{01c4}]+/i,utf
2746    \x{01c4}\x{01c5}\x{01c6}
2747 0: \x{1c4}\x{1c5}\x{1c6}
2748
2749/[z\x{01c5}]+/i,utf
2750    \x{01c4}\x{01c5}\x{01c6}
2751 0: \x{1c4}\x{1c5}\x{1c6}
2752
2753/[z\x{01c6}]+/i,utf
2754    \x{01c4}\x{01c5}\x{01c6}
2755 0: \x{1c4}\x{1c5}\x{1c6}
2756
2757/[z\x{01c7}]+/i,utf
2758    \x{01c7}\x{01c8}\x{01c9}
2759 0: \x{1c7}\x{1c8}\x{1c9}
2760
2761/[z\x{01c8}]+/i,utf
2762    \x{01c7}\x{01c8}\x{01c9}
2763 0: \x{1c7}\x{1c8}\x{1c9}
2764
2765/[z\x{01c9}]+/i,utf
2766    \x{01c7}\x{01c8}\x{01c9}
2767 0: \x{1c7}\x{1c8}\x{1c9}
2768
2769/[z\x{01ca}]+/i,utf
2770    \x{01ca}\x{01cb}\x{01cc}
2771 0: \x{1ca}\x{1cb}\x{1cc}
2772
2773/[z\x{01cb}]+/i,utf
2774    \x{01ca}\x{01cb}\x{01cc}
2775 0: \x{1ca}\x{1cb}\x{1cc}
2776
2777/[z\x{01cc}]+/i,utf
2778    \x{01ca}\x{01cb}\x{01cc}
2779 0: \x{1ca}\x{1cb}\x{1cc}
2780
2781/[z\x{01f1}]+/i,utf
2782    \x{01f1}\x{01f2}\x{01f3}
2783 0: \x{1f1}\x{1f2}\x{1f3}
2784
2785/[z\x{01f2}]+/i,utf
2786    \x{01f1}\x{01f2}\x{01f3}
2787 0: \x{1f1}\x{1f2}\x{1f3}
2788
2789/[z\x{01f3}]+/i,utf
2790    \x{01f1}\x{01f2}\x{01f3}
2791 0: \x{1f1}\x{1f2}\x{1f3}
2792
2793/[z\x{0345}]+/i,utf
2794    \x{0345}\x{0399}\x{03b9}\x{1fbe}
2795 0: \x{345}\x{399}\x{3b9}\x{1fbe}
2796
2797/[z\x{0399}]+/i,utf
2798    \x{0345}\x{0399}\x{03b9}\x{1fbe}
2799 0: \x{345}\x{399}\x{3b9}\x{1fbe}
2800
2801/[z\x{03b9}]+/i,utf
2802    \x{0345}\x{0399}\x{03b9}\x{1fbe}
2803 0: \x{345}\x{399}\x{3b9}\x{1fbe}
2804
2805/[z\x{1fbe}]+/i,utf
2806    \x{0345}\x{0399}\x{03b9}\x{1fbe}
2807 0: \x{345}\x{399}\x{3b9}\x{1fbe}
2808
2809/[z\x{0392}]+/i,utf
2810    \x{0392}\x{03b2}\x{03d0}
2811 0: \x{392}\x{3b2}\x{3d0}
2812
2813/[z\x{03b2}]+/i,utf
2814    \x{0392}\x{03b2}\x{03d0}
2815 0: \x{392}\x{3b2}\x{3d0}
2816
2817/[z\x{03d0}]+/i,utf
2818    \x{0392}\x{03b2}\x{03d0}
2819 0: \x{392}\x{3b2}\x{3d0}
2820
2821/[z\x{0395}]+/i,utf
2822    \x{0395}\x{03b5}\x{03f5}
2823 0: \x{395}\x{3b5}\x{3f5}
2824
2825/[z\x{03b5}]+/i,utf
2826    \x{0395}\x{03b5}\x{03f5}
2827 0: \x{395}\x{3b5}\x{3f5}
2828
2829/[z\x{03f5}]+/i,utf
2830    \x{0395}\x{03b5}\x{03f5}
2831 0: \x{395}\x{3b5}\x{3f5}
2832
2833/[z\x{0398}]+/i,utf
2834    \x{0398}\x{03b8}\x{03d1}\x{03f4}
2835 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2836
2837/[z\x{03b8}]+/i,utf
2838    \x{0398}\x{03b8}\x{03d1}\x{03f4}
2839 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2840
2841/[z\x{03d1}]+/i,utf
2842    \x{0398}\x{03b8}\x{03d1}\x{03f4}
2843 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2844
2845/[z\x{03f4}]+/i,utf
2846    \x{0398}\x{03b8}\x{03d1}\x{03f4}
2847 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
2848
2849/[z\x{039a}]+/i,utf
2850    \x{039a}\x{03ba}\x{03f0}
2851 0: \x{39a}\x{3ba}\x{3f0}
2852
2853/[z\x{03ba}]+/i,utf
2854    \x{039a}\x{03ba}\x{03f0}
2855 0: \x{39a}\x{3ba}\x{3f0}
2856
2857/[z\x{03f0}]+/i,utf
2858    \x{039a}\x{03ba}\x{03f0}
2859 0: \x{39a}\x{3ba}\x{3f0}
2860
2861/[z\x{03a0}]+/i,utf
2862    \x{03a0}\x{03c0}\x{03d6}
2863 0: \x{3a0}\x{3c0}\x{3d6}
2864
2865/[z\x{03c0}]+/i,utf
2866    \x{03a0}\x{03c0}\x{03d6}
2867 0: \x{3a0}\x{3c0}\x{3d6}
2868
2869/[z\x{03d6}]+/i,utf
2870    \x{03a0}\x{03c0}\x{03d6}
2871 0: \x{3a0}\x{3c0}\x{3d6}
2872
2873/[z\x{03a1}]+/i,utf
2874    \x{03a1}\x{03c1}\x{03f1}
2875 0: \x{3a1}\x{3c1}\x{3f1}
2876
2877/[z\x{03c1}]+/i,utf
2878    \x{03a1}\x{03c1}\x{03f1}
2879 0: \x{3a1}\x{3c1}\x{3f1}
2880
2881/[z\x{03f1}]+/i,utf
2882    \x{03a1}\x{03c1}\x{03f1}
2883 0: \x{3a1}\x{3c1}\x{3f1}
2884
2885/[z\x{03a3}]+/i,utf
2886    \x{03A3}\x{03C2}\x{03C3}
2887 0: \x{3a3}\x{3c2}\x{3c3}
2888
2889/[z\x{03c2}]+/i,utf
2890    \x{03A3}\x{03C2}\x{03C3}
2891 0: \x{3a3}\x{3c2}\x{3c3}
2892
2893/[z\x{03c3}]+/i,utf
2894    \x{03A3}\x{03C2}\x{03C3}
2895 0: \x{3a3}\x{3c2}\x{3c3}
2896
2897/[z\x{03a6}]+/i,utf
2898    \x{03a6}\x{03c6}\x{03d5}
2899 0: \x{3a6}\x{3c6}\x{3d5}
2900
2901/[z\x{03c6}]+/i,utf
2902    \x{03a6}\x{03c6}\x{03d5}
2903 0: \x{3a6}\x{3c6}\x{3d5}
2904
2905/[z\x{03d5}]+/i,utf
2906    \x{03a6}\x{03c6}\x{03d5}
2907 0: \x{3a6}\x{3c6}\x{3d5}
2908
2909/[z\x{03c9}]+/i,utf
2910    \x{03c9}\x{03a9}\x{2126}
2911 0: \x{3c9}\x{3a9}\x{2126}
2912
2913/[z\x{03a9}]+/i,utf
2914    \x{03c9}\x{03a9}\x{2126}
2915 0: \x{3c9}\x{3a9}\x{2126}
2916
2917/[z\x{2126}]+/i,utf
2918    \x{03c9}\x{03a9}\x{2126}
2919 0: \x{3c9}\x{3a9}\x{2126}
2920
2921/[z\x{1e60}]+/i,utf
2922    \x{1e60}\x{1e61}\x{1e9b}
2923 0: \x{1e60}\x{1e61}\x{1e9b}
2924
2925/[z\x{1e61}]+/i,utf
2926    \x{1e60}\x{1e61}\x{1e9b}
2927 0: \x{1e60}\x{1e61}\x{1e9b}
2928
2929/[z\x{1e9b}]+/i,utf
2930    \x{1e60}\x{1e61}\x{1e9b}
2931 0: \x{1e60}\x{1e61}\x{1e9b}
2932
2933# Perl 5.12.4 gets these wrong, but 5.15.3 is OK
2934
2935/[z\x{004b}]+/i,utf
2936    \x{004b}\x{006b}\x{212a}
2937 0: Kk\x{212a}
2938
2939/[z\x{006b}]+/i,utf
2940    \x{004b}\x{006b}\x{212a}
2941 0: Kk\x{212a}
2942
2943/[z\x{212a}]+/i,utf
2944    \x{004b}\x{006b}\x{212a}
2945 0: Kk\x{212a}
2946
2947/[z\x{0053}]+/i,utf
2948    \x{0053}\x{0073}\x{017f}
2949 0: Ss\x{17f}
2950
2951/[z\x{0073}]+/i,utf
2952    \x{0053}\x{0073}\x{017f}
2953 0: Ss\x{17f}
2954
2955/[z\x{017f}]+/i,utf
2956    \x{0053}\x{0073}\x{017f}
2957 0: Ss\x{17f}
2958
2959# --------------------------------------
2960
2961/(ΣΆΜΟΣ) \1/i,utf
2962    ΣΆΜΟΣ ΣΆΜΟΣ
2963 0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2964 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2965    ΣΆΜΟΣ σάμος
2966 0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2967 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2968    σάμος σάμος
2969 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2970 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2971    σάμος σάμοσ
2972 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
2973 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2974    σάμος ΣΆΜΟΣ
2975 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2976 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2977
2978/(σάμος) \1/i,utf
2979    ΣΆΜΟΣ ΣΆΜΟΣ
2980 0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2981 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2982    ΣΆΜΟΣ σάμος
2983 0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2984 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2985    σάμος σάμος
2986 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2987 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2988    σάμος σάμοσ
2989 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c3}
2990 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2991    σάμος ΣΆΜΟΣ
2992 0: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2} \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2993 1: \x{3c3}\x{3ac}\x{3bc}\x{3bf}\x{3c2}
2994
2995/(ΣΆΜΟΣ) \1*/i,utf
2996    ΣΆΜΟΣ\x20
2997 0: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2998 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
2999    ΣΆΜΟΣ ΣΆΜΟΣσάμοςσάμος
3000 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}
3001 1: \x{3a3}\x{386}\x{39c}\x{39f}\x{3a3}
3002
3003# Perl matches these
3004
3005/\x{00b5}+/i,utf
3006    \x{00b5}\x{039c}\x{03bc}
3007 0: \x{b5}\x{39c}\x{3bc}
3008
3009/\x{039c}+/i,utf
3010    \x{00b5}\x{039c}\x{03bc}
3011 0: \x{b5}\x{39c}\x{3bc}
3012
3013/\x{03bc}+/i,utf
3014    \x{00b5}\x{039c}\x{03bc}
3015 0: \x{b5}\x{39c}\x{3bc}
3016
3017
3018/\x{00c5}+/i,utf
3019    \x{00c5}\x{00e5}\x{212b}
3020 0: \x{c5}\x{e5}\x{212b}
3021
3022/\x{00e5}+/i,utf
3023    \x{00c5}\x{00e5}\x{212b}
3024 0: \x{c5}\x{e5}\x{212b}
3025
3026/\x{212b}+/i,utf
3027    \x{00c5}\x{00e5}\x{212b}
3028 0: \x{c5}\x{e5}\x{212b}
3029
3030
3031/\x{01c4}+/i,utf
3032    \x{01c4}\x{01c5}\x{01c6}
3033 0: \x{1c4}\x{1c5}\x{1c6}
3034
3035/\x{01c5}+/i,utf
3036    \x{01c4}\x{01c5}\x{01c6}
3037 0: \x{1c4}\x{1c5}\x{1c6}
3038
3039/\x{01c6}+/i,utf
3040    \x{01c4}\x{01c5}\x{01c6}
3041 0: \x{1c4}\x{1c5}\x{1c6}
3042
3043
3044/\x{01c7}+/i,utf
3045    \x{01c7}\x{01c8}\x{01c9}
3046 0: \x{1c7}\x{1c8}\x{1c9}
3047
3048/\x{01c8}+/i,utf
3049    \x{01c7}\x{01c8}\x{01c9}
3050 0: \x{1c7}\x{1c8}\x{1c9}
3051
3052/\x{01c9}+/i,utf
3053    \x{01c7}\x{01c8}\x{01c9}
3054 0: \x{1c7}\x{1c8}\x{1c9}
3055
3056
3057/\x{01ca}+/i,utf
3058    \x{01ca}\x{01cb}\x{01cc}
3059 0: \x{1ca}\x{1cb}\x{1cc}
3060
3061/\x{01cb}+/i,utf
3062    \x{01ca}\x{01cb}\x{01cc}
3063 0: \x{1ca}\x{1cb}\x{1cc}
3064
3065/\x{01cc}+/i,utf
3066    \x{01ca}\x{01cb}\x{01cc}
3067 0: \x{1ca}\x{1cb}\x{1cc}
3068
3069
3070/\x{01f1}+/i,utf
3071    \x{01f1}\x{01f2}\x{01f3}
3072 0: \x{1f1}\x{1f2}\x{1f3}
3073
3074/\x{01f2}+/i,utf
3075    \x{01f1}\x{01f2}\x{01f3}
3076 0: \x{1f1}\x{1f2}\x{1f3}
3077
3078/\x{01f3}+/i,utf
3079    \x{01f1}\x{01f2}\x{01f3}
3080 0: \x{1f1}\x{1f2}\x{1f3}
3081
3082
3083/\x{0345}+/i,utf
3084    \x{0345}\x{0399}\x{03b9}\x{1fbe}
3085 0: \x{345}\x{399}\x{3b9}\x{1fbe}
3086
3087/\x{0399}+/i,utf
3088    \x{0345}\x{0399}\x{03b9}\x{1fbe}
3089 0: \x{345}\x{399}\x{3b9}\x{1fbe}
3090
3091/\x{03b9}+/i,utf
3092    \x{0345}\x{0399}\x{03b9}\x{1fbe}
3093 0: \x{345}\x{399}\x{3b9}\x{1fbe}
3094
3095/\x{1fbe}+/i,utf
3096    \x{0345}\x{0399}\x{03b9}\x{1fbe}
3097 0: \x{345}\x{399}\x{3b9}\x{1fbe}
3098
3099
3100/\x{0392}+/i,utf
3101    \x{0392}\x{03b2}\x{03d0}
3102 0: \x{392}\x{3b2}\x{3d0}
3103
3104/\x{03b2}+/i,utf
3105    \x{0392}\x{03b2}\x{03d0}
3106 0: \x{392}\x{3b2}\x{3d0}
3107
3108/\x{03d0}+/i,utf
3109    \x{0392}\x{03b2}\x{03d0}
3110 0: \x{392}\x{3b2}\x{3d0}
3111
3112
3113/\x{0395}+/i,utf
3114    \x{0395}\x{03b5}\x{03f5}
3115 0: \x{395}\x{3b5}\x{3f5}
3116
3117/\x{03b5}+/i,utf
3118    \x{0395}\x{03b5}\x{03f5}
3119 0: \x{395}\x{3b5}\x{3f5}
3120
3121/\x{03f5}+/i,utf
3122    \x{0395}\x{03b5}\x{03f5}
3123 0: \x{395}\x{3b5}\x{3f5}
3124
3125
3126/\x{0398}+/i,utf
3127    \x{0398}\x{03b8}\x{03d1}\x{03f4}
3128 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3129
3130/\x{03b8}+/i,utf
3131    \x{0398}\x{03b8}\x{03d1}\x{03f4}
3132 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3133
3134/\x{03d1}+/i,utf
3135    \x{0398}\x{03b8}\x{03d1}\x{03f4}
3136 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3137
3138/\x{03f4}+/i,utf
3139    \x{0398}\x{03b8}\x{03d1}\x{03f4}
3140 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
3141
3142
3143/\x{039a}+/i,utf
3144    \x{039a}\x{03ba}\x{03f0}
3145 0: \x{39a}\x{3ba}\x{3f0}
3146
3147/\x{03ba}+/i,utf
3148    \x{039a}\x{03ba}\x{03f0}
3149 0: \x{39a}\x{3ba}\x{3f0}
3150
3151/\x{03f0}+/i,utf
3152    \x{039a}\x{03ba}\x{03f0}
3153 0: \x{39a}\x{3ba}\x{3f0}
3154
3155
3156/\x{03a0}+/i,utf
3157    \x{03a0}\x{03c0}\x{03d6}
3158 0: \x{3a0}\x{3c0}\x{3d6}
3159
3160/\x{03c0}+/i,utf
3161    \x{03a0}\x{03c0}\x{03d6}
3162 0: \x{3a0}\x{3c0}\x{3d6}
3163
3164/\x{03d6}+/i,utf
3165    \x{03a0}\x{03c0}\x{03d6}
3166 0: \x{3a0}\x{3c0}\x{3d6}
3167
3168
3169/\x{03a1}+/i,utf
3170    \x{03a1}\x{03c1}\x{03f1}
3171 0: \x{3a1}\x{3c1}\x{3f1}
3172
3173/\x{03c1}+/i,utf
3174    \x{03a1}\x{03c1}\x{03f1}
3175 0: \x{3a1}\x{3c1}\x{3f1}
3176
3177/\x{03f1}+/i,utf
3178    \x{03a1}\x{03c1}\x{03f1}
3179 0: \x{3a1}\x{3c1}\x{3f1}
3180
3181
3182/\x{03a3}+/i,utf
3183    \x{03A3}\x{03C2}\x{03C3}
3184 0: \x{3a3}\x{3c2}\x{3c3}
3185
3186/\x{03c2}+/i,utf
3187    \x{03A3}\x{03C2}\x{03C3}
3188 0: \x{3a3}\x{3c2}\x{3c3}
3189
3190/\x{03c3}+/i,utf
3191    \x{03A3}\x{03C2}\x{03C3}
3192 0: \x{3a3}\x{3c2}\x{3c3}
3193
3194
3195/\x{03a6}+/i,utf
3196    \x{03a6}\x{03c6}\x{03d5}
3197 0: \x{3a6}\x{3c6}\x{3d5}
3198
3199/\x{03c6}+/i,utf
3200    \x{03a6}\x{03c6}\x{03d5}
3201 0: \x{3a6}\x{3c6}\x{3d5}
3202
3203/\x{03d5}+/i,utf
3204    \x{03a6}\x{03c6}\x{03d5}
3205 0: \x{3a6}\x{3c6}\x{3d5}
3206
3207
3208/\x{03c9}+/i,utf
3209    \x{03c9}\x{03a9}\x{2126}
3210 0: \x{3c9}\x{3a9}\x{2126}
3211
3212/\x{03a9}+/i,utf
3213    \x{03c9}\x{03a9}\x{2126}
3214 0: \x{3c9}\x{3a9}\x{2126}
3215
3216/\x{2126}+/i,utf
3217    \x{03c9}\x{03a9}\x{2126}
3218 0: \x{3c9}\x{3a9}\x{2126}
3219
3220
3221/\x{1e60}+/i,utf
3222    \x{1e60}\x{1e61}\x{1e9b}
3223 0: \x{1e60}\x{1e61}\x{1e9b}
3224
3225/\x{1e61}+/i,utf
3226    \x{1e60}\x{1e61}\x{1e9b}
3227 0: \x{1e60}\x{1e61}\x{1e9b}
3228
3229/\x{1e9b}+/i,utf
3230    \x{1e60}\x{1e61}\x{1e9b}
3231 0: \x{1e60}\x{1e61}\x{1e9b}
3232
3233
3234/\x{1e9e}+/i,utf
3235    \x{1e9e}\x{00df}
3236 0: \x{1e9e}\x{df}
3237
3238/\x{00df}+/i,utf
3239    \x{1e9e}\x{00df}
3240 0: \x{1e9e}\x{df}
3241
3242
3243/\x{1f88}+/i,utf
3244    \x{1f88}\x{1f80}
3245 0: \x{1f88}\x{1f80}
3246
3247/\x{1f80}+/i,utf
3248    \x{1f88}\x{1f80}
3249 0: \x{1f88}\x{1f80}
3250
3251# Perl 5.12.4 gets these wrong, but 5.15.3 is OK
3252
3253/\x{004b}+/i,utf
3254    \x{004b}\x{006b}\x{212a}
3255 0: Kk\x{212a}
3256
3257/\x{006b}+/i,utf
3258    \x{004b}\x{006b}\x{212a}
3259 0: Kk\x{212a}
3260
3261/\x{212a}+/i,utf
3262    \x{004b}\x{006b}\x{212a}
3263 0: Kk\x{212a}
3264
3265
3266/\x{0053}+/i,utf
3267    \x{0053}\x{0073}\x{017f}
3268 0: Ss\x{17f}
3269
3270/\x{0073}+/i,utf
3271    \x{0053}\x{0073}\x{017f}
3272 0: Ss\x{17f}
3273
3274/\x{017f}+/i,utf
3275    \x{0053}\x{0073}\x{017f}
3276 0: Ss\x{17f}
3277
3278/^\p{Any}*\d{4}/utf
3279    1234
3280 0: 1234
3281\= Expect no match
3282    123
3283No match
3284
3285/^\X*\w{4}/utf
3286    1234
3287 0: 1234
3288\= Expect no match
3289    123
3290No match
3291
3292/^A\s+Z/utf,ucp
3293    A\x{2005}Z
3294 0: A\x{2005}Z
3295    A\x{85}\x{2005}Z
3296 0: A\x{85}\x{2005}Z
3297
3298/^A[\s]+Z/utf,ucp
3299    A\x{2005}Z
3300 0: A\x{2005}Z
3301    A\x{85}\x{2005}Z
3302 0: A\x{85}\x{2005}Z
3303
3304/^[[:graph:]]+$/utf,ucp
3305    Letter:ABC
3306 0: Letter:ABC
3307    Mark:\x{300}\x{1d172}\x{1d17b}
3308 0: Mark:\x{300}\x{1d172}\x{1d17b}
3309    Number:9\x{660}
3310 0: Number:9\x{660}
3311    Punctuation:\x{66a},;
3312 0: Punctuation:\x{66a},;
3313    Symbol:\x{6de}<>\x{fffc}
3314 0: Symbol:\x{6de}<>\x{fffc}
3315    Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3316 0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3317    \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3318 0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3319    \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3320 0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3321    \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3322 0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3323    \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3324 0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3325    \x{feff}
3326 0: \x{feff}
3327    \x{fff9}\x{fffa}\x{fffb}
3328 0: \x{fff9}\x{fffa}\x{fffb}
3329    \x{110bd}
3330 0: \x{110bd}
3331    \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3332 0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3333    \x{e0001}
3334 0: \x{e0001}
3335    \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3336 0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3337\= Expect no match
3338    \x{09}
3339No match
3340    \x{0a}
3341No match
3342    \x{1D}
3343No match
3344    \x{20}
3345No match
3346    \x{85}
3347No match
3348    \x{a0}
3349No match
3350    \x{1680}
3351No match
3352    \x{2028}
3353No match
3354    \x{2029}
3355No match
3356    \x{202f}
3357No match
3358    \x{2065}
3359No match
3360    \x{3000}
3361No match
3362    \x{e0002}
3363No match
3364    \x{e001f}
3365No match
3366    \x{e0080}
3367No match
3368
3369/^[[:print:]]+$/utf,ucp
3370    Space: \x{a0}
3371 0: Space: \x{a0}
3372    \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3373 0: \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3374    \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
3375 0: \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
3376    \x{202f}\x{205f}
3377 0: \x{202f}\x{205f}
3378    \x{3000}
3379 0: \x{3000}
3380    Letter:ABC
3381 0: Letter:ABC
3382    Mark:\x{300}\x{1d172}\x{1d17b}
3383 0: Mark:\x{300}\x{1d172}\x{1d17b}
3384    Number:9\x{660}
3385 0: Number:9\x{660}
3386    Punctuation:\x{66a},;
3387 0: Punctuation:\x{66a},;
3388    Symbol:\x{6de}<>\x{fffc}
3389 0: Symbol:\x{6de}<>\x{fffc}
3390    Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3391 0: Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3392    \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3393 0: \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3394    \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3395 0: \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3396    \x{202f}
3397 0: \x{202f}
3398    \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3399 0: \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3400    \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3401 0: \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3402    \x{feff}
3403 0: \x{feff}
3404    \x{fff9}\x{fffa}\x{fffb}
3405 0: \x{fff9}\x{fffa}\x{fffb}
3406    \x{110bd}
3407 0: \x{110bd}
3408    \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3409 0: \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3410    \x{e0001}
3411 0: \x{e0001}
3412    \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3413 0: \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3414\= Expect no match
3415    \x{09}
3416No match
3417    \x{1D}
3418No match
3419    \x{85}
3420No match
3421    \x{2028}
3422No match
3423    \x{2029}
3424No match
3425    \x{2065}
3426No match
3427    \x{e0002}
3428No match
3429    \x{e001f}
3430No match
3431    \x{e0080}
3432No match
3433
3434/^[[:punct:]]+$/utf,ucp
3435    \$+<=>^`|~
3436 0: $+<=>^`|~
3437    !\"#%&'()*,-./:;?@[\\]_{}
3438 0: !"#%&'()*,-./:;?@[\]_{}
3439    \x{a1}\x{a7}
3440 0: \x{a1}\x{a7}
3441    \x{37e}
3442 0: \x{37e}
3443\= Expect no match
3444    abcde
3445No match
3446
3447/^[[:^graph:]]+$/utf,ucp
3448    \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
3449 0: \x{09}\x{0a}\x{1d} \x{85}\x{a0}\x{1680}
3450    \x{2028}\x{2029}\x{202f}\x{2065}
3451 0: \x{2028}\x{2029}\x{202f}\x{2065}
3452    \x{3000}\x{e0002}\x{e001f}\x{e0080}
3453 0: \x{3000}\x{e0002}\x{e001f}\x{e0080}
3454\= Expect no match
3455    Letter:ABC
3456No match
3457    Mark:\x{300}\x{1d172}\x{1d17b}
3458No match
3459    Number:9\x{660}
3460No match
3461    Punctuation:\x{66a},;
3462No match
3463    Symbol:\x{6de}<>\x{fffc}
3464No match
3465    Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3466No match
3467    \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3468No match
3469    \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3470No match
3471    \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3472No match
3473    \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3474No match
3475    \x{feff}
3476No match
3477    \x{fff9}\x{fffa}\x{fffb}
3478No match
3479    \x{110bd}
3480No match
3481    \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3482No match
3483    \x{e0001}
3484No match
3485    \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3486No match
3487
3488/^[[:^print:]]+$/utf,ucp
3489    \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
3490 0: \x{09}\x{1d}\x{85}\x{2028}\x{2029}\x{2065}
3491    \x{e0002}\x{e001f}\x{e0080}
3492 0: \x{e0002}\x{e001f}\x{e0080}
3493\= Expect no match
3494    Space: \x{a0}
3495No match
3496    \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
3497No match
3498    \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
3499No match
3500    \x{202f}\x{205f}
3501No match
3502    \x{3000}
3503No match
3504    Letter:ABC
3505No match
3506    Mark:\x{300}\x{1d172}\x{1d17b}
3507No match
3508    Number:9\x{660}
3509No match
3510    Punctuation:\x{66a},;
3511No match
3512    Symbol:\x{6de}<>\x{fffc}
3513No match
3514    Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
3515No match
3516    \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
3517No match
3518    \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
3519No match
3520    \x{202f}
3521No match
3522    \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
3523No match
3524    \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
3525No match
3526    \x{feff}
3527No match
3528    \x{fff9}\x{fffa}\x{fffb}
3529No match
3530    \x{110bd}
3531No match
3532    \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
3533No match
3534    \x{e0001}
3535No match
3536    \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
3537No match
3538
3539/^[[:^punct:]]+$/utf,ucp
3540    abcde
3541 0: abcde
3542\= Expect no match
3543    \$+<=>^`|~
3544No match
3545    !\"#%&'()*,-./:;?@[\\]_{}
3546No match
3547    \x{a1}\x{a7}
3548No match
3549    \x{37e}
3550No match
3551
3552/[RST]+/i,utf,ucp
3553    Ss\x{17f}
3554 0: Ss\x{17f}
3555
3556/[R-T]+/i,utf,ucp
3557    Ss\x{17f}
3558 0: Ss\x{17f}
3559
3560/[q-u]+/i,utf,ucp
3561    Ss\x{17f}
3562 0: Ss\x{17f}
3563
3564/^s?c/im,utf
3565    scat
3566 0: sc
3567
3568# The next four tests are for repeated caseless back references when the
3569# code unit length of the matched text is different to that of the original
3570# group in the UTF-8 case.
3571
3572/^(\x{23a})\1*(.)/i,utf
3573    \x{23a}\x{23a}\x{23a}\x{23a}
3574 0: \x{23a}\x{23a}\x{23a}\x{23a}
3575 1: \x{23a}
3576 2: \x{23a}
3577    \x{23a}\x{2c65}\x{2c65}\x{2c65}
3578 0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3579 1: \x{23a}
3580 2: \x{2c65}
3581    \x{23a}\x{23a}\x{2c65}\x{23a}
3582 0: \x{23a}\x{23a}\x{2c65}\x{23a}
3583 1: \x{23a}
3584 2: \x{23a}
3585
3586/^(\x{23a})\1*(..)/i,utf
3587    \x{23a}\x{2c65}\x{2c65}\x{2c65}
3588 0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3589 1: \x{23a}
3590 2: \x{2c65}\x{2c65}
3591    \x{23a}\x{23a}\x{2c65}\x{23a}
3592 0: \x{23a}\x{23a}\x{2c65}\x{23a}
3593 1: \x{23a}
3594 2: \x{2c65}\x{23a}
3595
3596/^(\x{23a})\1*(...)/i,utf
3597    \x{23a}\x{2c65}\x{2c65}\x{2c65}
3598 0: \x{23a}\x{2c65}\x{2c65}\x{2c65}
3599 1: \x{23a}
3600 2: \x{2c65}\x{2c65}\x{2c65}
3601    \x{23a}\x{23a}\x{2c65}\x{23a}
3602 0: \x{23a}\x{23a}\x{2c65}\x{23a}
3603 1: \x{23a}
3604 2: \x{23a}\x{2c65}\x{23a}
3605
3606/^(\x{23a})\1*(....)/i,utf
3607\= Expect no match
3608    \x{23a}\x{2c65}\x{2c65}\x{2c65}
3609No match
3610    \x{23a}\x{23a}\x{2c65}\x{23a}
3611No match
3612
3613/[A-`]/i,utf
3614    abcdefghijklmno
3615 0: a
3616
3617"[\S\V\H]"utf
3618
3619/[^\p{Any}]*+x/utf
3620    x
3621 0: x
3622
3623/[[:punct:]]/utf,ucp
3624    \x{b4}
3625No match
3626
3627/[[:^ascii:]]/utf,ucp
3628    \x{100}
3629 0: \x{100}
3630    \x{200}
3631 0: \x{200}
3632    \x{300}
3633 0: \x{300}
3634    \x{37e}
3635 0: \x{37e}
3636\= Expect no match
3637    aa
3638No match
3639    99
3640No match
3641
3642/[[:^ascii:]\w]/utf,ucp
3643    aa
3644 0: a
3645    99
3646 0: 9
3647    gg
3648 0: g
3649    \x{100}
3650 0: \x{100}
3651    \x{200}
3652 0: \x{200}
3653    \x{300}
3654 0: \x{300}
3655    \x{37e}
3656 0: \x{37e}
3657
3658/[\w[:^ascii:]]/utf,ucp
3659    aa
3660 0: a
3661    99
3662 0: 9
3663    gg
3664 0: g
3665    \x{100}
3666 0: \x{100}
3667    \x{200}
3668 0: \x{200}
3669    \x{300}
3670 0: \x{300}
3671    \x{37e}
3672 0: \x{37e}
3673
3674/[^[:ascii:]\W]/utf,ucp
3675    \x{100}
3676 0: \x{100}
3677    \x{200}
3678 0: \x{200}
3679\= Expect no match
3680    aa
3681No match
3682    99
3683No match
3684    gg
3685No match
3686    \x{37e}
3687No match
3688
3689/[^[:^ascii:]\d]/utf,ucp
3690    a
3691 0: a
3692    ~
3693 0: ~
3694    \a
3695 0: \x{07}
3696    \x{7f}
3697 0: \x{7f}
3698\= Expect no match
3699    0
3700No match
3701    \x{389}
3702No match
3703    \x{20ac}
3704No match
3705
3706# End of testinput4
3707