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

B/x,utf
3792    AB
3793 0: AB
3794
3795/A B/x,utf
3796    A\x{2002}B
3797 0: A\x{2002}B
3798\= Expect no match
3799    AB
3800No match
3801
3802# -------
3803
3804/[^\x{100}-\x{ffff}]*[\x80-\xff]/utf
3805    \x{99}\x{99}\x{99}
3806 0: \x{99}\x{99}\x{99}
3807
3808/[^\x{100}-\x{ffff}ABC]*[\x80-\xff]/utf
3809    \x{99}\x{99}\x{99}
3810 0: \x{99}\x{99}\x{99}
3811
3812/[^\x{100}-\x{ffff}]*[\x80-\xff]/i,utf
3813    \x{99}\x{99}\x{99}
3814 0: \x{99}\x{99}\x{99}
3815
3816# Script run tests
3817
3818/^(*script_run:.{4})/utf
3819    abcd                               Latin x4
3820 0: abcd
3821    \x{2e80}\x{2fa1d}\x{3041}\x{30a1}  Han Han Hiragana Katakana
3822 0: \x{2e80}\x{2fa1d}\x{3041}\x{30a1}
3823    \x{3041}\x{30a1}\x{3007}\x{3007}   Hiragana Katakana Han Han
3824 0: \x{3041}\x{30a1}\x{3007}\x{3007}
3825    \x{30a1}\x{3041}\x{3007}\x{3007}   Katakana Hiragana Han Han
3826 0: \x{30a1}\x{3041}\x{3007}\x{3007}
3827    \x{1100}\x{2e80}\x{2e80}\x{1101}   Hangul Han Han Hangul
3828 0: \x{1100}\x{2e80}\x{2e80}\x{1101}
3829    \x{2e80}\x{3105}\x{2e80}\x{3105}   Han Bopomofo Han Bopomofo
3830 0: \x{2e80}\x{3105}\x{2e80}\x{3105}
3831    \x{02ea}\x{2e80}\x{2e80}\x{3105}   Bopomofo-Sk Han Han Bopomofo
3832 0: \x{2ea}\x{2e80}\x{2e80}\x{3105}
3833    \x{3105}\x{2e80}\x{2e80}\x{3105}   Bopomofo Han Han Bopomofo
3834 0: \x{3105}\x{2e80}\x{2e80}\x{3105}
3835    \x{0300}cd!                        Inherited Latin Latin Common
3836 0: \x{300}cd!
3837    \x{0391}12\x{03a9}                 Greek Common-digits Greek
3838 0: \x{391}12\x{3a9}
3839    \x{0400}12\x{fe2f}                 Cyrillic Common-digits Cyrillic
3840 0: \x{400}12\x{fe2f}
3841    \x{0531}12\x{fb17}                 Armenian Common-digits Armenian
3842 0: \x{531}12\x{fb17}
3843    \x{0591}12\x{fb4f}                 Hebrew Common-digits Hebrew
3844 0: \x{591}12\x{fb4f}
3845    \x{0600}12\x{1eef1}                Arabic Common-digits Arabic
3846 0: \x{600}12\x{1eef1}
3847    \x{0600}\x{0660}\x{0669}\x{1eef1}  Arabic Arabic-digits Arabic
3848 0: \x{600}\x{660}\x{669}\x{1eef1}
3849    \x{0700}12\x{086a}                 Syriac Common-digits Syriac
3850 0: \x{700}12\x{86a}
3851    \x{1200}12\x{ab2e}                 Ethiopic Common-digits Ethiopic
3852 0: \x{1200}12\x{ab2e}
3853    \x{1680}12\x{169c}                 Ogham Common-digits Ogham
3854 0: \x{1680}12\x{169c}
3855    \x{3041}12\x{3041}                 Hiragana Common-digits Hiragana
3856 0: \x{3041}12\x{3041}
3857    \x{0980}\x{09e6}\x{09e7}\x{0993}   Bengali Bengali-digits Bengali
3858 0: \x{980}\x{9e6}\x{9e7}\x{993}
3859    !cde                               Common Latin Latin Latin
3860 0: !cde
3861    A..B                               Latin Common Common Latin
3862 0: A..B
3863    0abc                               Ascii-digit Latin Latin Latin
3864 0: 0abc
3865    1\x{0700}\x{0700}\x{0700}          Ascii-digit Syriac x 3
3866 0: 1\x{700}\x{700}\x{700}
3867    \x{1A80}\x{1A80}\x{1a40}\x{1a41}   Tai Tham Hora digits, letters
3868 0: \x{1a80}\x{1a80}\x{1a40}\x{1a41}
3869\= Expect no match
3870    a\x{370}bcd                        Latin Greek Latin Latin
3871No match
3872    \x{1100}\x{02ea}\x{02ea}\x{02ea}   Hangul Bopomofo x3
3873No match
3874    \x{02ea}\x{02ea}\x{02ea}\x{1100}   Bopomofo x3 Hangul
3875No match
3876    \x{1100}\x{2e80}\x{3041}\x{1101}   Hangul Han Hiragana Hangul
3877No match
3878    \x{0391}\x{09e6}\x{09e7}\x{03a9}   Greek Bengali digits Greek
3879No match
3880    \x{0600}7\x{0669}\x{1eef1}         Arabic ascii-digit Arabic-digit Arabic
3881No match
3882    \x{0600}\x{0669}7\x{1eef1}         Arabic Arabic-digit ascii-digit Arabic
3883No match
3884    A5\x{ff19}B                        Latin Common-ascii/notascii-digits Latin
3885No match
3886    \x{0300}cd\x{0391}                 Inherited Latin Latin Greek
3887No match
3888    !cd\x{0391}                        Common Latin Latin Greek
3889No match
3890    \x{1A80}\x{1A90}\x{1a40}\x{1a41}   Tai Tham Hora digit, Tham digit, letters
3891No match
3892    A\x{1d7ce}\x{1d7ff}B               Common fancy-common-2-sets-digits Common
3893No match
3894    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3895No match
3896
3897/^(*sr:.{4}|..)/utf
3898    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3899 0: \x{2e80}\x{3105}
3900
3901/^(*atomic_script_run:.{4}|..)/utf
3902\= Expect no match
3903    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3904No match
3905
3906/^(*asr:.*)/utf
3907\= Expect no match
3908    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3909No match
3910
3911/^(?>(*sr:.*))/utf
3912    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3913 0: \x{2e80}\x{3105}\x{2e80}
3914
3915/^(*sr:.*)/utf
3916    \x{2e80}\x{3105}\x{2e80}\x{30a1}   Han Bopomofo Han Katakana
3917 0: \x{2e80}\x{3105}\x{2e80}
3918    \x{10fffd}\x{10fffd}\x{10fffd}     Private use (Unknown)
3919 0: \x{10fffd}
3920
3921/^(*sr:\x{2e80}*)/utf
3922    \x{2e80}\x{2e80}\x{3105}           Han Han Bopomofo
3923 0: \x{2e80}\x{2e80}
3924
3925/^(*sr:\x{2e80}*)\x{2e80}/utf
3926    \x{2e80}\x{2e80}\x{3105}           Han Han Bopomofo
3927 0: \x{2e80}\x{2e80}
3928
3929/^(*sr:.*)Test/utf
3930    Test script run on an empty string
3931 0: Test
3932
3933/^(*sr:(.{2})){2}/utf
3934    \x{0600}7\x{0669}\x{1eef1}         Arabic ascii-digit Arabic-digit Arabic
3935 0: \x{600}7\x{669}\x{1eef1}
3936 1: \x{669}\x{1eef1}
3937    \x{1A80}\x{1A80}\x{1a40}\x{1a41}   Tai Tham Hora digits, letters
3938 0: \x{1a80}\x{1a80}\x{1a40}\x{1a41}
3939 1: \x{1a40}\x{1a41}
3940    \x{1A80}\x{1a40}\x{1A90}\x{1a41}   Tai Tham Hora digit, letter, Tham digit, letter
3941 0: \x{1a80}\x{1a40}\x{1a90}\x{1a41}
3942 1: \x{1a90}\x{1a41}
3943\= Expect no match
3944    \x{1100}\x{2e80}\x{3041}\x{1101}   Hangul Han Hiragana Hangul
3945No match
3946
3947/^(*sr:\S*)/utf
3948    \x{1cf4}\x{20f0}\x{900}\x{11305}   [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Gran
3949 0: \x{1cf4}\x{20f0}\x{900}
3950    \x{1cf4}\x{20f0}\x{11305}\x{900}   [Dev,Gran,Kan] [Dev,Gran,Lat] Gran Dev
3951 0: \x{1cf4}\x{20f0}\x{11305}
3952    \x{1cf4}\x{20f0}\x{900}ABC         [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Lat
3953 0: \x{1cf4}\x{20f0}\x{900}
3954    \x{1cf4}\x{20f0}ABC                [Dev,Gran,Kan] [Dev,Gran,Lat] Lat
3955 0: \x{1cf4}\x{20f0}
3956    \x{20f0}ABC                        [Dev,Gran,Lat] Lat
3957 0: \x{20f0}ABC
3958    XYZ\x{20f0}ABC                     Lat [Dev,Gran,Lat] Lat
3959 0: XYZ\x{20f0}ABC
3960    \x{a36}\x{a33}\x{900}              [Dev,...] [Dev,...] Dev
3961 0: \x{a36}\x{a33}
3962    \x{3001}\x{2e80}\x{3041}\x{30a1}   [Bopo, Han, etc] Han Hira Kata
3963 0: \x{3001}\x{2e80}\x{3041}\x{30a1}
3964    \x{3001}\x{30a1}\x{2e80}\x{3041}   [Bopo, Han, etc] Kata Han Hira
3965 0: \x{3001}\x{30a1}\x{2e80}\x{3041}
3966    \x{3001}\x{3105}\x{2e80}\x{1101}   [Bopo, Han, etc] Bopomofo Han Hangul
3967 0: \x{3001}\x{3105}\x{2e80}
3968    \x{3105}\x{3001}\x{2e80}\x{1101}   Bopomofo [Bopo, Han, etc] Han Hangul
3969 0: \x{3105}\x{3001}\x{2e80}
3970    \x{3031}\x{3041}\x{30a1}\x{2e80}   [Hira Kata] Hira Kata Han
3971 0: \x{3031}\x{3041}\x{30a1}\x{2e80}
3972    \x{060c}\x{06d4}\x{0600}\x{10d00}\x{0700}  [Arab Rohg Syrc Thaa] [Arab Rohg] Arab Rohg Syrc
3973 0: \x{60c}\x{6d4}\x{600}
3974    \x{060c}\x{06d4}\x{0700}\x{0600}\x{10d00}  [Arab Rohg Syrc Thaa] [Arab Rohg] Syrc Arab Rohg
3975 0: \x{60c}\x{6d4}
3976    \x{2e80}\x{3041}\x{3001}\x{3031}\x{2e80}   Han Hira [Bopo, Han, etc] [Hira Kata] Han
3977 0: \x{2e80}\x{3041}\x{3001}\x{3031}\x{2e80}
3978
3979/(?<!)(*sr:)/
3980
3981/(?<!X(*sr:B)C)/
3982
3983/(?<=abc(?=X(*sr:BCY)Z)XBCYZ)./
3984    abcXBCYZ!
3985 0: !
3986
3987/(?<=abc(?=X(*sr:BXY)CCC)XBXYCCC)./
3988   abcXBXYCCC!
3989 0: !
3990
3991/^(*sr:\S*)/utf
3992    \x{10d00}\x{10d00}\x{06d4}     Rohingya Rohingya Arabic-full-stop
3993 0: \x{10d00}\x{10d00}\x{6d4}
3994    \x{06d4}\x{10d00}\x{10d00}     Arabic-full-stop Rohingya Rohingya
3995 0: \x{6d4}\x{10d00}\x{10d00}
3996    \x{10d00}\x{10d00}\x{0363}     Rohingya Rohingya Inherited-extend-Latin
3997 0: \x{10d00}\x{10d00}
3998    \x{0363}\x{10d00}\x{10d00}     Inherited-extend-Latin Rohingya Rohingya
3999 0: \x{363}
4000    AB\x{0363}                     Latin Latin Inherited-extend-Latin
4001 0: AB\x{363}
4002    \x{0363}AB                     Inherited-extend-Latin Latin Latin
4003 0: \x{363}AB
4004    AB\x{1cf7}                     Latin Latin Common-extended-Beng
4005 0: AB
4006    \x{1cf7}AB                     Common-extend-Beng Latin Latin
4007 0: \x{1cf7}
4008    \x{1cf7}\x{0993}               Common-extend-Beng Bengali
4009 0: \x{1cf7}\x{993}
4010    A\x{1abe}BC                    Test enclosing mark
4011 0: A\x{1abe}BC
4012    \x{0370}\x{1abe}\x{0371}       Which can occur with any script (Greek here)
4013 0: \x{370}\x{1abe}\x{371}
4014    \x{3001}\x{adf9}\x{3001}       [.. Hangul ..] Hangul [.. Hangul ..]
4015 0: \x{3001}\x{adf9}\x{3001}
4016    \x{3400}\x{3001}XXX            Han [Han etc.]
4017 0: \x{3400}\x{3001}
4018    \x{3400}\x{1cd5}               Han [Bengali Devanagari]
4019 0: \x{3400}
4020    \x{ac01}\x{3400}               Hangul [.. Hangul ..]
4021 0: \x{ac01}\x{3400}
4022    \x{ac01}\x{1cd5}               Hangul [Bengali Devanagari]
4023 0: \x{ac01}
4024    \x{102e0}\x{06d4}\x{1ee4d}     [Arabic Coptic] [Arab Rohingya] Arabic
4025 0: \x{102e0}\x{6d4}\x{1ee4d}
4026    \x{102e0}\x{06d4}\x{2cc9}      [Arabic Coptic] [Arab Rohingya] Coptic
4027 0: \x{102e0}\x{6d4}
4028    \x{102e0}\x{06d4}\x{10d30}     [Arabic Coptic] [Arab Rohingya] Rohingya
4029 0: \x{102e0}\x{6d4}
4030
4031# Test loop breaking for empty string match
4032
4033/^(*sr:A|)*BCD/utf
4034    AABCD
4035 0: AABCD
4036    ABCD
4037 0: ABCD
4038    BCD
4039 0: BCD
4040
4041# The use of (*ACCEPT) breaks script run checking
4042
4043/^(*sr:.*(*ACCEPT)ZZ)/utf
4044    \x{1100}\x{2e80}\x{3041}\x{1101}   Hangul Han Hiragana Hangul
4045 0: \x{1100}\x{2e80}\x{3041}\x{1101}   Hangul Han Hiragana Hangul
4046
4047# -------
4048
4049# Test group names containing non-ASCII letters and digits
4050
4051/(?'ABáC'...)\g{ABáC}/utf
4052    abcabcdefg
4053 0: abcabc
4054 1: abc
4055
4056/(?'XʰABC'...)/utf
4057    xyzpq
4058 0: xyz
4059 1: xyz
4060
4061/(?'XאABC'...)/utf
4062    12345
4063 0: 123
4064 1: 123
4065
4066/(?'XᾈABC'...)/utf
4067    %^&*(...
4068 0: %^&
4069 1: %^&
4070
4071/(?'��ABC'...)/utf
4072    abcde
4073 0: abc
4074 1: abc
4075
4076/^(?'אABC'...)(?&אABC)(?P=אABC)/utf
4077    123123123456
4078 0: 123123123
4079 1: 123
4080
4081/^(?'אABC'...)(?&אABC)/utf
4082    123123123456
4083 0: 123123
4084 1: 123
4085
4086/\X*/
4087    \xF3aaa\xE4\xEA\xEB\xFEa
4088 0: \xf3aaa\xe4\xea\xeb\xfea
4089
4090/Я/i,utf
4091    \x{42f}
4092 0: \x{42f}
4093    \x{44f}
4094 0: \x{44f}
4095
4096/(?=Я)/i,utf
4097    \x{42f}
4098 0:
4099    \x{44f}
4100 0:
4101
4102# -----------------------------------------------------------------------------
4103# Tests for bidi control and bidi class properties.
4104
4105/\p{ bidi_control }/utf
4106    -->\x{202c}<--
4107 0: \x{202c}
4108
4109/\p{bidicontrol}+/utf
4110    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4111 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
4112    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4113 0: \x{2066}\x{2067}\x{2068}\x{2069}
4114
4115/\p{bidic}+?/utf
4116    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4117 0: \x{61c}
4118    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4119 0: \x{2066}
4120
4121/\p{bidi_control}++/utf
4122    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4123 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
4124    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4125 0: \x{2066}\x{2067}\x{2068}\x{2069}
4126
4127/[\p{bidi_c}]/utf
4128    -->\x{202c}<--
4129 0: \x{202c}
4130
4131/[\p{bidicontrol}]+/utf
4132    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4133 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
4134    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4135 0: \x{2066}\x{2067}\x{2068}\x{2069}
4136
4137/[\p{bidicontrol}]+?/utf
4138    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4139 0: \x{61c}
4140    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4141 0: \x{2066}
4142
4143/[\p{bidicontrol}]++/utf
4144    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4145 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
4146    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4147 0: \x{2066}\x{2067}\x{2068}\x{2069}
4148
4149/[\p{bidicontrol}<>]+/utf
4150    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4151 0: >\x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<
4152    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4153 0: >\x{2066}\x{2067}\x{2068}\x{2069}<
4154
4155/\P{bidicontrol}+/g,utf
4156    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4157 0: -->
4158 0: <--
4159    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4160 0: -->
4161 0: <--
4162
4163/\p{^bidicontrol}+/g,utf
4164    -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
4165 0: -->
4166 0: <--
4167    -->\x{2066}\x{2067}\x{2068}\x{2069}<--
4168 0: -->
4169 0: <--
4170
4171/\p{bidi class = al}/utf
4172    -->\x{061D}<--
4173 0: \x{61d}
4174
4175/\p{bc = al}+/utf
4176    -->\x{061D}\x{061e}\x{061f}<--
4177 0: \x{61d}\x{61e}\x{61f}
4178
4179/\p{bidi_class : AL}+?/utf
4180    -->\x{061D}\x{061e}\x{061f}<--
4181 0: \x{61d}
4182
4183/\p{Bidi_Class : AL}++/utf
4184    -->\x{061D}\x{061e}\x{061f}<--
4185 0: \x{61d}\x{61e}\x{61f}
4186
4187/\p{b_c = aN}+/utf
4188    -->\x{061D}\x{0602}\x{0604}\x{061f}<--
4189 0: \x{602}\x{604}
4190
4191/\p{bidi class = B}+/utf
4192    -->\x{0a}\x{0d}\x{01c}\x{01e}\x{085}\x{2029}<--
4193 0: \x{0a}\x{0d}\x{1c}\x{1e}\x{85}\x{2029}
4194
4195/\p{bidi class:BN}+/utf
4196    -->\x{0}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}<--
4197 0: \x{00}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}
4198
4199/\p{bidiclass:cs}+/utf
4200    -->,.\x{060c}\x{ff1a}<--
4201 0: ,.\x{60c}\x{ff1a}
4202
4203/\p{bidiclass:En}+/utf
4204    -->09\x{b2}\x{2074}\x{1fbf9}<--
4205 0: 09\x{b2}\x{2074}\x{1fbf9}
4206
4207/\p{bidiclass:es}+/utf
4208    ==>+-\x{207a}\x{ff0d}<==
4209 0: +-\x{207a}\x{ff0d}
4210
4211/\p{bidiclass:et}+/utf
4212    -->#\{24}%\x{a2}\x{A838}\x{1e2ff}<--
4213 0: #
4214
4215/\p{bidiclass:FSI}+/utf
4216    -->\x{2068}<--
4217 0: \x{2068}
4218
4219/\p{bidi class:L}+/utf
4220    -->ABC<--
4221 0: ABC
4222
4223/\P{bidi class:L}+/utf
4224    -->ABC<--
4225 0: -->
4226
4227/\p{bidi class:LRE}+\p{bidiclass=lri}*\p{bidiclass:lro}/utf
4228    -->\x{202a}\x{2066}\x{202d}<--
4229 0: \x{202a}\x{2066}\x{202d}
4230
4231/\p{bidi class:NSM}+/utf
4232    -->\x{9bc}\x{a71}\x{e31}<--
4233 0: \x{9bc}\x{a71}\x{e31}
4234
4235/\p{bidi class:ON}+/utf
4236    -->\x{21}'()*;@\x{384}\x{2039}<=-
4237 0: >!'()*;@\x{384}\x{2039}<=
4238
4239/\p{bidiclass:pdf}\p{bidiclass:pdi}/utf
4240    -->\x{202c}\x{2069}<--
4241 0: \x{202c}\x{2069}
4242
4243/\p{bidi class:R}+/utf
4244    -->\x{590}\x{5c6}\x{200f}\x{10805}<--
4245 0: \x{590}\x{5c6}\x{200f}\x{10805}
4246
4247/\p{bidi class:RLE}+\p{bidi class:RLI}*\p{bidi class:RLO}+/utf
4248    -->\x{202b}\x{2067}\x{202e}<--
4249 0: \x{202b}\x{2067}\x{202e}
4250
4251/\p{bidi class:S}+\p{bidiclass:WS}+/utf
4252    -->\x{9}\x{b}\x{1f}  \x{c} \x{2000} \x{3000}<--
4253 0: \x{09}\x{0b}\x{1f}  \x{0c} \x{2000} \x{3000}
4254
4255# -----------------------------------------------------------------------------
4256
4257/[\p{taml}\p{sc:ugar}]+/utf
4258    \x{0b82}\x{10380}
4259 0: \x{b82}\x{10380}
4260
4261/^[\p{sc:Arabic}]/utf
4262\= Expect no match
4263    \x{650}
4264No match
4265    \x{651}
4266No match
4267    \x{652}
4268No match
4269    \x{653}
4270No match
4271    \x{654}
4272No match
4273    \x{655}
4274No match
4275
4276# -----------------------------------------------------------------------------
4277# Tests for newly-added Boolean Properties
4278
4279/\p{ahex}\p{asciihexdigit}/utf
4280    >4F<
4281 0: 4F
4282
4283/\p{alpha}\p{alphabetic}/g,utf
4284    >AB<>\x{148}\x{1234}
4285 0: AB
4286 0: \x{148}\x{1234}
4287
4288/\p{ascii}\p{ascii}/g,utf
4289    >AB<>\x{148}\x{1234}
4290 0: >A
4291 0: B<
4292
4293/\p{Bidi_C}\p{bidicontrol}/g,utf
4294    >\x{202d}\x{2069}<
4295 0: \x{202d}\x{2069}
4296
4297/\p{Bidi_M}\p{bidimirrored}/g,utf
4298    >\x{202d}\x{2069}<>\x{298b}\x{bb}<
4299 0: <>
4300 0: \x{298b}\x{bb}
4301
4302/\p{cased}\p{cased}/g,utf
4303    >AN<>\x{149}\x{120}<
4304 0: AN
4305 0: \x{149}\x{120}
4306
4307/\p{caseignorable}\p{ci}/g,utf
4308    >AN<>\x{60}\x{859}<
4309 0: `\x{859}
4310
4311/\p{changeswhencasefolded}\p{cwcf}/g,utf
4312    >AN<>\x{149}\x{120}<
4313 0: AN
4314 0: \x{149}\x{120}
4315
4316/\p{changeswhencasemapped}\p{cwcm}/g,utf
4317    >AN<>\x{149}\x{120}<
4318 0: AN
4319 0: \x{149}\x{120}
4320
4321/\p{changeswhenlowercased}\p{cwl}/g,utf
4322    >AN<>\x{149}\x{120}<>yz<
4323 0: AN
4324
4325/\p{changeswhenuppercased}\p{cwu}/g,utf
4326    >AN<>\x{149}\x{120}<>yz<
4327 0: yz
4328
4329/\p{changeswhentitlecased}\p{cwt}/g,utf
4330    >AN<>\x{149}\x{120}<>yz<
4331 0: yz
4332
4333/\p{dash}\p{dash}/g,utf
4334    >\x{2d}\x{1400}<>yz<
4335 0: -\x{1400}
4336
4337/\p{defaultignorablecodepoint}\p{di}/g,utf
4338    >AN<>\x{ad}\x{e0fff}<>yz<
4339 0: \x{ad}\x{e0fff}
4340
4341/\p{deprecated}\p{dep}/g,utf
4342    >AN<>\x{149}\x{e0001}<>yz<
4343 0: \x{149}\x{e0001}
4344
4345/\p{diacritic}\p{dia}/g,utf
4346    >AN<>\x{f84}\x{5e}<>yz<
4347 0: \x{f84}^
4348
4349/\p{emojicomponent}\p{ecomp}/g,utf
4350    >AN<>\x{200d}\x{e007f}<>yz<
4351 0: \x{200d}\x{e007f}
4352
4353/\p{emojimodifier}\p{emod}/g,utf
4354    >AN<>\x{1f3fb}\x{1f3ff}<>yz<
4355 0: \x{1f3fb}\x{1f3ff}
4356
4357/\p{emojipresentation}\p{epres}/g,utf
4358    >AN<>\x{2653}\x{1f6d2}<>yz<
4359 0: \x{2653}\x{1f6d2}
4360
4361/\p{extender}\p{ext}/g,utf
4362    >AN<>\x{1e944}\x{b7}<>yz<
4363 0: \x{1e944}\x{b7}
4364
4365/\p{extendedpictographic}\p{extpict}/g,utf
4366    >AN<>\x{26cf}\x{ae}<>yz<
4367 0: \x{26cf}\x{ae}
4368
4369/\p{graphemebase}\p{grbase}/g,utf
4370    >AN<>\x{10f}\x{60}<>yz<
4371 0: >A
4372 0: N<
4373 0: >\x{10f}
4374 0: `<
4375 0: >y
4376 0: z<
4377
4378/\p{graphemeextend}\p{grext}/g,utf
4379    >AN<>\x{300}\x{b44}<>yz<
4380 0: \x{300}\x{b44}
4381
4382/\p{hexdigit}\p{hex}/g,utf
4383    >AF23<>\x{ff46}\x{ff10}<>yz<
4384 0: AF
4385 0: 23
4386 0: \x{ff46}\x{ff10}
4387
4388/\p{idcontinue}\p{idc}/g,utf
4389    >AF23<>\x{146}\x{7a}<>yz<
4390 0: AF
4391 0: 23
4392 0: \x{146}z
4393 0: yz
4394
4395/\p{ideographic}\p{ideo}/g,utf
4396    >AF23<>\x{30000}\x{3006}<>yz<
4397 0: \x{30000}\x{3006}
4398
4399/\p{idstart}\p{ids}/g,utf
4400    >AF23<>\x{146}\x{7a}<>yz<
4401 0: AF
4402 0: \x{146}z
4403 0: yz
4404
4405/\p{idsbinaryoperator}\p{idsb}/g,utf
4406    >AF23<>\x{2ff0}\x{2ffb}<>yz<\x{2ff2}\x{2ff1}
4407 0: \x{2ff0}\x{2ffb}
4408
4409/\p{idstrinaryoperator}\p{idst}/g,utf
4410    >AF23<>\x{2ff2}\x{2ff3}<>yz<
4411 0: \x{2ff2}\x{2ff3}
4412
4413/\p{Join Control}\p{joinc}/g,utf
4414    >AF23<>\x{200c}\x{200d}<>yz<
4415 0: \x{200c}\x{200d}
4416
4417/\p{logical_order_exception}\p{loe}/g,utf
4418    >AF23<>\x{e40}\x{aabc}<>yz<
4419 0: \x{e40}\x{aabc}
4420
4421/\p{Lowercase}\p{lower}/g,utf
4422    >AF23<>\x{146}\x{7a}<>yz<
4423 0: \x{146}z
4424 0: yz
4425
4426/\p{math}\p{math}/g,utf
4427    >AF23<>\x{2215}\x{2b}<>yz<
4428 0: <>
4429 0: \x{2215}+
4430 0: <>
4431
4432/\p{Non Character Code Point}\p{nchar}/g,utf
4433    >AF23<>\x{10ffff}\x{fdd0}<>yz<
4434 0: \x{10ffff}\x{fdd0}
4435
4436/\p{patternsyntax}\p{patsyn}/g,utf
4437    >AF23<>\x{21cd}\x{21}<>yz<
4438 0: <>
4439 0: \x{21cd}!
4440 0: <>
4441
4442/\p{patternwhitespace}\p{patws}/g,utf
4443    >AF23<>\x{2029}\x{85}<>yz<
4444 0: \x{2029}\x{85}
4445
4446/\p{prependedconcatenationmark}\p{pcm}/g,utf
4447    >AF23<>\x{600}\x{110cd}<>yz<
4448 0: \x{600}\x{110cd}
4449
4450/\p{quotationmark}\p{qmark}/g,utf
4451    >AF23<>\x{ff63}\x{22}<>yz<
4452 0: \x{ff63}"
4453
4454/\p{radical}\p{radical}/g,utf
4455    >AF23<>\x{2fd5}\x{2e80}<>yz<
4456 0: \x{2fd5}\x{2e80}
4457
4458/\p{regionalindicator}\p{ri}/g,utf
4459    >AF23<>\x{1f1e6}\x{1f1ff}<>yz<
4460 0: \x{1f1e6}\x{1f1ff}
4461
4462/=\p{whitespace}\p{space}\p{wspace}=/g,utf
4463    >AF23<=\x{d}\x{1680}\x{3000}=>yz<
4464 0: =\x{0d}\x{1680}\x{3000}=
4465
4466/\p{sentenceterminal}\p{sterm}/g,utf
4467    >AF23<>\x{1da88}\x{2e}<>yz<
4468 0: \x{1da88}.
4469
4470/\p{terminalpunctuation}\p{term}/g,utf
4471    >AF23<>\x{1da88}\x{2e}<>yz<
4472 0: \x{1da88}.
4473
4474/\p{unified ideograph}\p{uideo}/g,utf
4475    >AF23<>\x{30000}\x{3400}<>yz<
4476 0: \x{30000}\x{3400}
4477
4478/\p{UPPERcase}\p{upper}/g,utf
4479    >AF23<>\x{146}\x{7a}<>yz<
4480 0: AF
4481
4482/\p{variationselector}\p{vs}/g,utf
4483    >AF23<>\x{180b}\x{e01ef}<>yz<
4484 0: \x{180b}\x{e01ef}
4485
4486/\p{xidcontinue}\p{xidc}/g,utf
4487    >AF23<>\x{146}\x{30}<>yz<
4488 0: AF
4489 0: 23
4490 0: \x{146}0
4491 0: yz
4492
4493# -----------------------------------------------------------------------------
4494# Variable-length lookbehinds.
4495
4496/(?<=áb?c).../g,utf
4497    ábcdèfgácxyz
4498 0: d\x{e8}f
4499 0: xyz
4500
4501/(?<=PQR|áb?c).../g,utf
4502    ábcdèfgácxyzPQR123
4503 0: d\x{e8}f
4504 0: xyz
4505 0: 123
4506
4507/(?<=áb?c|PQR).../g,utf
4508    ábcdèfgácxyzPQR123
4509 0: d\x{e8}f
4510 0: xyz
4511 0: 123
4512
4513/(?<=PQ|áb?c).../g,utf
4514    ábcdèfgácxyzPQR123
4515 0: d\x{e8}f
4516 0: xyz
4517 0: R12
4518
4519/(?<=áb?c|PQ).../g,utf
4520    ábcdèfgácxyzPQR123
4521 0: d\x{e8}f
4522 0: xyz
4523 0: R12
4524
4525/(?<=á(b?c|d?è?è)f)X./g,utf
4526     ácfX1zzzáèfX2zzzádèèfX3zzzX4zzz
4527 0: X1
4528 1: c
4529 0: X2
4530 1: \x{e8}
4531 0: X3
4532 1: d\x{e8}\x{e8}
4533
4534/(?<!á(b?c|d?è?è)f)X./g,utf
4535     ácfX1zzzáèfX2zzzádèèfX3zzzX4zzz
4536 0: X4
4537
4538/(?(?<=áb?c)d|è)/utf
4539    ábcdèfg
4540 0: d
4541    ácdèfg
4542 0: d
4543    áxdèfg
4544 0: \x{e8}
4545
4546/(?<=\d{2,3}|áBC)./utf
4547    áBCD
4548 0: D
4549
4550/(?<=á(b?c){3}d)X/utf
4551   ZXácbccdXYZ
4552 0: X
4553 1: c
4554
4555/(?<=á(b?c){0}d)X/utf
4556   ZXádXYZ
4557 0: X
4558
4559/(?<=á?(b?c){0}d)X./utf
4560   ZXádXYZ
4561 0: XY
4562
4563# --------------------------------------------------------------------------
4564
4565/\N{ U+1234 }/utf
4566    \x{1234}
4567 0: \x{1234}
4568
4569/\o{ 1234 }/utf
4570    x\o{1234}y
4571 0: \x{29c}
4572
4573/\x{ 1234 }/utf
4574    x\x{1234}y
4575 0: \x{1234}
4576
4577/\p{ L }/
4578    23AB56
4579 0: A
4580
4581/\w+/utf,ucp
4582    --cafe\x{300}_au\x{203f}lait!
4583 0: cafe\x{300}_au\x{203f}lait
4584
4585/[\w]+/utf,ucp
4586    --cafe\x{300}_au\x{203f}lait!
4587 0: cafe\x{300}_au\x{203f}lait
4588
4589/[[:word:]]+/utf,ucp
4590    --cafe\x{300}_au\x{203f}lait!
4591 0: cafe\x{300}_au\x{203f}lait
4592
4593/[[:xdigit:]]+/utf,ucp
4594    --123ef\x{ff10}\x{ff19}\x{ff21}\x{ff26}\x{ff1a}
4595 0: 123ef\x{ff10}\x{ff19}\x{ff21}\x{ff26}
4596
4597/\b.+?\b/utf,ucp
4598    --cafe\x{300}_au\x{203f}lait!
4599 0: cafe\x{300}_au\x{203f}lait
4600
4601/caf\B.+?\B/utf,ucp
4602    --cafe\x{300}_au\x{203f}lait!
4603 0: cafe
4604
4605# End of testinput4
4606