• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/-- This set of tests check Unicode property support with the DFA matching
2    functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest
3    when running it. --/
4
5/\pL\P{Nd}/8
6    AB
7    *** Failers
8    A0
9    00
10
11/\X./8
12    AB
13    A\x{300}BC
14    A\x{300}\x{301}\x{302}BC
15    *** Failers
16    \x{300}
17
18/\X\X/8
19    ABC
20    A\x{300}B\x{300}\x{301}C
21    A\x{300}\x{301}\x{302}BC
22    *** Failers
23    \x{300}
24
25/^\pL+/8
26    abcd
27    a
28    *** Failers
29
30/^\PL+/8
31    1234
32    =
33    *** Failers
34    abcd
35
36/^\X+/8
37    abcdA\x{300}\x{301}\x{302}
38    A\x{300}\x{301}\x{302}
39    A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
40    a
41    *** Failers
42    \x{300}\x{301}\x{302}
43
44/\X?abc/8
45    abc
46    A\x{300}abc
47    A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
48    \x{300}abc
49    *** Failers
50
51/^\X?abc/8
52    abc
53    A\x{300}abc
54    *** Failers
55    A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
56    \x{300}abc
57
58/\X*abc/8
59    abc
60    A\x{300}abc
61    A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
62    \x{300}abc
63    *** Failers
64
65/^\X*abc/8
66    abc
67    A\x{300}abc
68    A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
69    *** Failers
70    \x{300}abc
71
72/^\pL?=./8
73    A=b
74    =c
75    *** Failers
76    1=2
77    AAAA=b
78
79/^\pL*=./8
80    AAAA=b
81    =c
82    *** Failers
83    1=2
84
85/^\X{2,3}X/8
86    A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
87    A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
88    *** Failers
89    X
90    A\x{300}\x{301}\x{302}X
91    A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
92
93/^\pC\pL\pM\pN\pP\pS\pZ</8
94    \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
95    \np\x{300}9!\$ <
96    ** Failers
97    ap\x{300}9!\$ <
98
99/^\PC/8
100    X
101    ** Failers
102    \x7f
103
104/^\PL/8
105    9
106    ** Failers
107    \x{c0}
108
109/^\PM/8
110    X
111    ** Failers
112    \x{30f}
113
114/^\PN/8
115    X
116    ** Failers
117    \x{660}
118
119/^\PP/8
120    X
121    ** Failers
122    \x{66c}
123
124/^\PS/8
125    X
126    ** Failers
127    \x{f01}
128
129/^\PZ/8
130    X
131    ** Failers
132    \x{1680}
133
134/^\p{Cc}/8
135    \x{017}
136    \x{09f}
137    ** Failers
138    \x{0600}
139
140/^\p{Cf}/8
141    \x{601}
142    \x{180e}
143    \x{061c}
144    \x{2066}
145    \x{2067}
146    \x{2068}
147    \x{2069}
148    ** Failers
149    \x{09f}
150
151/^\p{Cn}/8
152    ** Failers
153    \x{09f}
154
155/^\p{Co}/8
156    \x{f8ff}
157    ** Failers
158    \x{09f}
159
160/^\p{Cs}/8
161    \?\x{dfff}
162    ** Failers
163    \x{09f}
164
165/^\p{Ll}/8
166    a
167    ** Failers
168    Z
169    \x{e000}
170
171/^\p{Lm}/8
172    \x{2b0}
173    ** Failers
174    a
175
176/^\p{Lo}/8
177    \x{1bb}
178    ** Failers
179    a
180    \x{2b0}
181
182/^\p{Lt}/8
183    \x{1c5}
184    ** Failers
185    a
186    \x{2b0}
187
188/^\p{Lu}/8
189    A
190    ** Failers
191    \x{2b0}
192
193/^\p{Mc}/8
194    \x{903}
195    ** Failers
196    X
197    \x{300}
198
199/^\p{Me}/8
200    \x{488}
201    ** Failers
202    X
203    \x{903}
204    \x{300}
205
206/^\p{Mn}/8
207    \x{300}
208    \x{1a1b}
209    ** Failers
210    X
211    \x{903}
212
213/^\p{Nd}+/8O
214    0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
215    \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
216    \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
217    ** Failers
218    X
219
220/^\p{Nl}/8
221    \x{16ee}
222    ** Failers
223    X
224    \x{966}
225
226/^\p{No}/8
227    \x{b2}
228    \x{b3}
229    ** Failers
230    X
231    \x{16ee}
232
233/^\p{Pc}/8
234    \x5f
235    \x{203f}
236    ** Failers
237    X
238    -
239    \x{58a}
240
241/^\p{Pd}/8
242    -
243    \x{58a}
244    ** Failers
245    X
246    \x{203f}
247
248/^\p{Pe}/8
249    )
250    ]
251    }
252    \x{f3b}
253    \x{2309}
254    \x{230b}
255    ** Failers
256    X
257    \x{203f}
258    (
259    [
260    {
261    \x{f3c}
262
263/^\p{Pf}/8
264    \x{bb}
265    \x{2019}
266    ** Failers
267    X
268    \x{203f}
269
270/^\p{Pi}/8
271    \x{ab}
272    \x{2018}
273    ** Failers
274    X
275    \x{203f}
276
277/^\p{Po}/8
278    !
279    \x{37e}
280    ** Failers
281    X
282    \x{203f}
283
284/^\p{Ps}/8
285    (
286    [
287    {
288    \x{f3c}
289    \x{2308}
290    \x{230a}
291    ** Failers
292    X
293    )
294    ]
295    }
296    \x{f3b}
297
298/^\p{Sc}+/8
299    $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
300    \x{9f2}
301    ** Failers
302    X
303    \x{2c2}
304
305/^\p{Sk}/8
306    \x{2c2}
307    ** Failers
308    X
309    \x{9f2}
310
311/^\p{Sm}+/8
312    +<|~\x{ac}\x{2044}
313    ** Failers
314    X
315    \x{9f2}
316
317/^\p{So}/8
318    \x{a6}
319    \x{482}
320    ** Failers
321    X
322    \x{9f2}
323
324/^\p{Zl}/8
325    \x{2028}
326    ** Failers
327    X
328    \x{2029}
329
330/^\p{Zp}/8
331    \x{2029}
332    ** Failers
333    X
334    \x{2028}
335
336/^\p{Zs}/8
337    \ \
338    \x{a0}
339    \x{1680}
340    \x{2000}
341    \x{2001}
342    ** Failers
343    \x{2028}
344    \x{200d}
345
346/\p{Nd}+(..)/8
347      \x{660}\x{661}\x{662}ABC
348
349/\p{Nd}+?(..)/8
350      \x{660}\x{661}\x{662}ABC
351
352/\p{Nd}{2,}(..)/8
353      \x{660}\x{661}\x{662}ABC
354
355/\p{Nd}{2,}?(..)/8
356      \x{660}\x{661}\x{662}ABC
357
358/\p{Nd}*(..)/8
359      \x{660}\x{661}\x{662}ABC
360
361/\p{Nd}*?(..)/8
362      \x{660}\x{661}\x{662}ABC
363
364/\p{Nd}{2}(..)/8
365      \x{660}\x{661}\x{662}ABC
366
367/\p{Nd}{2,3}(..)/8
368      \x{660}\x{661}\x{662}ABC
369
370/\p{Nd}{2,3}?(..)/8
371      \x{660}\x{661}\x{662}ABC
372
373/\p{Nd}?(..)/8
374      \x{660}\x{661}\x{662}ABC
375
376/\p{Nd}??(..)/8
377      \x{660}\x{661}\x{662}ABC
378
379/\p{Nd}*+(..)/8
380      \x{660}\x{661}\x{662}ABC
381
382/\p{Nd}*+(...)/8
383      \x{660}\x{661}\x{662}ABC
384
385/\p{Nd}*+(....)/8
386      ** Failers
387      \x{660}\x{661}\x{662}ABC
388
389/\p{Lu}/8i
390    A
391    a\x{10a0}B
392    ** Failers
393    a
394    \x{1d00}
395
396/\p{^Lu}/8i
397    1234
398    ** Failers
399    ABC
400
401/\P{Lu}/8i
402    1234
403    ** Failers
404    ABC
405
406/(?<=A\p{Nd})XYZ/8
407    A2XYZ
408    123A5XYZPQR
409    ABA\x{660}XYZpqr
410    ** Failers
411    AXYZ
412    XYZ
413
414/(?<!\pL)XYZ/8
415    1XYZ
416    AB=XYZ..
417    XYZ
418    ** Failers
419    WXYZ
420
421/[\p{Nd}]/8
422    1234
423
424/[\p{Nd}+-]+/8
425    1234
426    12-34
427    12+\x{661}-34
428    ** Failers
429    abcd
430
431/[\P{Nd}]+/8
432    abcd
433    ** Failers
434    1234
435
436/\D+/8O
437    11111111111111111111111111111111111111111111111111111111111111111111111
438    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
439
440/\P{Nd}+/8O
441    11111111111111111111111111111111111111111111111111111111111111111111111
442    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
443
444/[\D]+/8O
445    11111111111111111111111111111111111111111111111111111111111111111111111
446    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
447
448/[\P{Nd}]+/8O
449    11111111111111111111111111111111111111111111111111111111111111111111111
450    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
451
452/[\D\P{Nd}]+/8O
453    11111111111111111111111111111111111111111111111111111111111111111111111
454    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
455
456/\pL/8
457    a
458    A
459
460/\pL/8i
461    a
462    A
463
464/\p{Lu}/8
465    A
466    aZ
467    ** Failers
468    abc
469
470/\p{Lu}/8i
471    A
472    aZ
473    ** Failers
474    abc
475
476/\p{Ll}/8
477    a
478    Az
479    ** Failers
480    ABC
481
482/\p{Ll}/8i
483    a
484    Az
485    ** Failers
486    ABC
487
488/^\x{c0}$/8i
489    \x{c0}
490    \x{e0}
491
492/^\x{e0}$/8i
493    \x{c0}
494    \x{e0}
495
496/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8
497    A\x{391}\x{10427}\x{ff3a}\x{1fb0}
498    ** Failers
499    a\x{391}\x{10427}\x{ff3a}\x{1fb0}
500    A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
501    A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
502    A\x{391}\x{10427}\x{ff5a}\x{1fb0}
503    A\x{391}\x{10427}\x{ff3a}\x{1fb8}
504
505/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i
506    A\x{391}\x{10427}\x{ff3a}\x{1fb0}
507    a\x{391}\x{10427}\x{ff3a}\x{1fb0}
508    A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
509    A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
510    A\x{391}\x{10427}\x{ff5a}\x{1fb0}
511    A\x{391}\x{10427}\x{ff3a}\x{1fb8}
512
513/\x{391}+/8i
514    \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
515
516/\x{391}{3,5}(.)/8i
517    \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
518
519/\x{391}{3,5}?(.)/8i
520    \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
521
522/[\x{391}\x{ff3a}]/8i
523    \x{391}
524    \x{ff3a}
525    \x{3b1}
526    \x{ff5a}
527
528/[\x{c0}\x{391}]/8i
529    \x{c0}
530    \x{e0}
531
532/[\x{105}-\x{109}]/8i
533    \x{104}
534    \x{105}
535    \x{109}
536    ** Failers
537    \x{100}
538    \x{10a}
539
540/[z-\x{100}]/8i
541    Z
542    z
543    \x{39c}
544    \x{178}
545    |
546    \x{80}
547    \x{ff}
548    \x{100}
549    \x{101}
550    ** Failers
551    \x{102}
552    Y
553    y
554
555/[z-\x{100}]/8i
556
557/^\X/8
558    A
559    A\x{300}BC
560    A\x{300}\x{301}\x{302}BC
561    *** Failers
562    \x{300}
563
564/^[\X]/8
565    X123
566    *** Failers
567    AXYZ
568
569/^(\X*)C/8
570    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
571    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
572
573/^(\X*?)C/8
574    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
575    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
576
577/^(\X*)(.)/8
578    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
579    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
580
581/^(\X*?)(.)/8
582    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
583    A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
584
585/^\X(.)/8
586    *** Failers
587    A\x{300}\x{301}\x{302}
588
589/^\X{2,3}(.)/8
590    A\x{300}\x{301}B\x{300}X
591    A\x{300}\x{301}B\x{300}C\x{300}\x{301}
592    A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
593    A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
594
595/^\X{2,3}?(.)/8
596    A\x{300}\x{301}B\x{300}X
597    A\x{300}\x{301}B\x{300}C\x{300}\x{301}
598    A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
599    A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
600
601/^\pN{2,3}X/
602    12X
603    123X
604    *** Failers
605    X
606    1X
607    1234X
608
609/\x{100}/i8
610    \x{100}
611    \x{101}
612
613/^\p{Han}+/8
614    \x{2e81}\x{3007}\x{2f804}\x{31a0}
615    ** Failers
616    \x{2e7f}
617
618/^\P{Katakana}+/8
619    \x{3105}
620    ** Failers
621    \x{30ff}
622
623/^[\p{Arabic}]/8
624    \x{06e9}
625    \x{060b}
626    ** Failers
627    X\x{06e9}
628
629/^[\P{Yi}]/8
630    \x{2f800}
631    ** Failers
632    \x{a014}
633    \x{a4c6}
634
635/^\p{Any}X/8
636    AXYZ
637    \x{1234}XYZ
638    ** Failers
639    X
640
641/^\P{Any}X/8
642    ** Failers
643    AX
644
645/^\p{Any}?X/8
646    XYZ
647    AXYZ
648    \x{1234}XYZ
649    ** Failers
650    ABXYZ
651
652/^\P{Any}?X/8
653    XYZ
654    ** Failers
655    AXYZ
656    \x{1234}XYZ
657    ABXYZ
658
659/^\p{Any}+X/8
660    AXYZ
661    \x{1234}XYZ
662    A\x{1234}XYZ
663    ** Failers
664    XYZ
665
666/^\P{Any}+X/8
667    ** Failers
668    AXYZ
669    \x{1234}XYZ
670    A\x{1234}XYZ
671    XYZ
672
673/^\p{Any}*X/8
674    XYZ
675    AXYZ
676    \x{1234}XYZ
677    A\x{1234}XYZ
678    ** Failers
679
680/^\P{Any}*X/8
681    XYZ
682    ** Failers
683    AXYZ
684    \x{1234}XYZ
685    A\x{1234}XYZ
686
687/^[\p{Any}]X/8
688    AXYZ
689    \x{1234}XYZ
690    ** Failers
691    X
692
693/^[\P{Any}]X/8
694    ** Failers
695    AX
696
697/^[\p{Any}]?X/8
698    XYZ
699    AXYZ
700    \x{1234}XYZ
701    ** Failers
702    ABXYZ
703
704/^[\P{Any}]?X/8
705    XYZ
706    ** Failers
707    AXYZ
708    \x{1234}XYZ
709    ABXYZ
710
711/^[\p{Any}]+X/8
712    AXYZ
713    \x{1234}XYZ
714    A\x{1234}XYZ
715    ** Failers
716    XYZ
717
718/^[\P{Any}]+X/8
719    ** Failers
720    AXYZ
721    \x{1234}XYZ
722    A\x{1234}XYZ
723    XYZ
724
725/^[\p{Any}]*X/8
726    XYZ
727    AXYZ
728    \x{1234}XYZ
729    A\x{1234}XYZ
730    ** Failers
731
732/^[\P{Any}]*X/8
733    XYZ
734    ** Failers
735    AXYZ
736    \x{1234}XYZ
737    A\x{1234}XYZ
738
739/^\p{Any}{3,5}?/8
740    abcdefgh
741    \x{1234}\n\r\x{3456}xyz
742
743/^\p{Any}{3,5}/8
744    abcdefgh
745    \x{1234}\n\r\x{3456}xyz
746
747/^\P{Any}{3,5}?/8
748    ** Failers
749    abcdefgh
750    \x{1234}\n\r\x{3456}xyz
751
752/^\p{L&}X/8
753     AXY
754     aXY
755     \x{1c5}XY
756     ** Failers
757     \x{1bb}XY
758     \x{2b0}XY
759     !XY
760
761/^[\p{L&}]X/8
762     AXY
763     aXY
764     \x{1c5}XY
765     ** Failers
766     \x{1bb}XY
767     \x{2b0}XY
768     !XY
769
770/^\p{L&}+X/8
771     AXY
772     aXY
773     AbcdeXyz
774     \x{1c5}AbXY
775     abcDEXypqreXlmn
776     ** Failers
777     \x{1bb}XY
778     \x{2b0}XY
779     !XY
780
781/^[\p{L&}]+X/8
782     AXY
783     aXY
784     AbcdeXyz
785     \x{1c5}AbXY
786     abcDEXypqreXlmn
787     ** Failers
788     \x{1bb}XY
789     \x{2b0}XY
790     !XY
791
792/^\p{L&}+?X/8
793     AXY
794     aXY
795     AbcdeXyz
796     \x{1c5}AbXY
797     abcDEXypqreXlmn
798     ** Failers
799     \x{1bb}XY
800     \x{2b0}XY
801     !XY
802
803/^[\p{L&}]+?X/8
804     AXY
805     aXY
806     AbcdeXyz
807     \x{1c5}AbXY
808     abcDEXypqreXlmn
809     ** Failers
810     \x{1bb}XY
811     \x{2b0}XY
812     !XY
813
814/^\P{L&}X/8
815     !XY
816     \x{1bb}XY
817     \x{2b0}XY
818     ** Failers
819     \x{1c5}XY
820     AXY
821
822/^[\P{L&}]X/8
823     !XY
824     \x{1bb}XY
825     \x{2b0}XY
826     ** Failers
827     \x{1c5}XY
828     AXY
829
830/^\x{023a}+?(\x{0130}+)/8i
831  \x{023a}\x{2c65}\x{0130}
832
833/^\x{023a}+([^X])/8i
834  \x{023a}\x{2c65}X
835
836/\x{c0}+\x{116}+/8i
837    \x{c0}\x{e0}\x{116}\x{117}
838
839/[\x{c0}\x{116}]+/8i
840    \x{c0}\x{e0}\x{116}\x{117}
841
842/Check property support in non-UTF-8 mode/
843
844/\p{L}{4}/
845    123abcdefg
846    123abc\xc4\xc5zz
847
848/\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8
849    \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
850
851/\x{a77d}\x{1d79}/8i
852    \x{a77d}\x{1d79}
853    \x{1d79}\x{a77d}
854
855/\x{a77d}\x{1d79}/8
856    \x{a77d}\x{1d79}
857    ** Failers
858    \x{1d79}\x{a77d}
859
860/^\p{Xan}/8
861    ABCD
862    1234
863    \x{6ca}
864    \x{a6c}
865    \x{10a7}
866    ** Failers
867    _ABC
868
869/^\p{Xan}+/8
870    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
871    ** Failers
872    _ABC
873
874/^\p{Xan}*/8
875    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
876
877/^\p{Xan}{2,9}/8
878    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
879
880/^[\p{Xan}]/8
881    ABCD1234_
882    1234abcd_
883    \x{6ca}
884    \x{a6c}
885    \x{10a7}
886    ** Failers
887    _ABC
888
889/^[\p{Xan}]+/8
890    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
891    ** Failers
892    _ABC
893
894/^>\p{Xsp}/8
895    >\x{1680}\x{2028}\x{0b}
896    ** Failers
897    \x{0b}
898
899/^>\p{Xsp}+/8O
900    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
901
902/^>\p{Xsp}*/8O
903    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
904
905/^>\p{Xsp}{2,9}/8O
906    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
907
908/^>[\p{Xsp}]/8O
909    >\x{2028}\x{0b}
910
911/^>[\p{Xsp}]+/8O
912    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
913
914/^>\p{Xps}/8
915    >\x{1680}\x{2028}\x{0b}
916    >\x{a0}
917    ** Failers
918    \x{0b}
919
920/^>\p{Xps}+/8
921    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
922
923/^>\p{Xps}+?/8
924    >\x{1680}\x{2028}\x{0b}
925
926/^>\p{Xps}*/8
927    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
928
929/^>\p{Xps}{2,9}/8
930    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
931
932/^>\p{Xps}{2,9}?/8
933    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
934
935/^>[\p{Xps}]/8
936    >\x{2028}\x{0b}
937
938/^>[\p{Xps}]+/8
939    > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
940
941/^\p{Xwd}/8
942    ABCD
943    1234
944    \x{6ca}
945    \x{a6c}
946    \x{10a7}
947    _ABC
948    ** Failers
949    []
950
951/^\p{Xwd}+/8
952    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
953
954/^\p{Xwd}*/8
955    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
956
957/^\p{Xwd}{2,9}/8
958    A_12\x{6ca}\x{a6c}\x{10a7}
959
960/^[\p{Xwd}]/8
961    ABCD1234_
962    1234abcd_
963    \x{6ca}
964    \x{a6c}
965    \x{10a7}
966    _ABC
967    ** Failers
968    []
969
970/^[\p{Xwd}]+/8
971    ABCD1234\x{6ca}\x{a6c}\x{10a7}_
972
973/-- Unicode properties for \b abd \B --/
974
975/\b...\B/8W
976    abc_
977    \x{37e}abc\x{376}
978    \x{37e}\x{376}\x{371}\x{393}\x{394}
979    !\x{c0}++\x{c1}\x{c2}
980    !\x{c0}+++++
981
982/-- Without PCRE_UCP, non-ASCII always fail, even if < 256  --/
983
984/\b...\B/8
985    abc_
986    ** Failers
987    \x{37e}abc\x{376}
988    \x{37e}\x{376}\x{371}\x{393}\x{394}
989    !\x{c0}++\x{c1}\x{c2}
990    !\x{c0}+++++
991
992/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties  --/
993
994/\b...\B/W
995    abc_
996    !\x{c0}++\x{c1}\x{c2}
997    !\x{c0}+++++
998
999/-- Caseless single negated characters > 127 need UCP support --/
1000
1001/[^\x{100}]/8i
1002    \x{100}\x{101}X
1003
1004/[^\x{100}]+/8i
1005    \x{100}\x{101}XX
1006
1007/^\X/8
1008    A\P
1009    A\P\P
1010    A\x{300}\x{301}\P
1011    A\x{300}\x{301}\P\P
1012    A\x{301}\P
1013    A\x{301}\P\P
1014
1015/^\X{2,3}/8
1016    A\P
1017    A\P\P
1018    AA\P
1019    AA\P\P
1020    A\x{300}\x{301}\P
1021    A\x{300}\x{301}\P\P
1022    A\x{300}\x{301}A\x{300}\x{301}\P
1023    A\x{300}\x{301}A\x{300}\x{301}\P\P
1024
1025/^\X{2}/8
1026    AA\P
1027    AA\P\P
1028    A\x{300}\x{301}A\x{300}\x{301}\P
1029    A\x{300}\x{301}A\x{300}\x{301}\P\P
1030
1031/^\X+/8
1032    AA\P
1033    AA\P\P
1034
1035/^\X+?Z/8
1036    AA\P
1037    AA\P\P
1038
1039/-- These are tests for extended grapheme clusters --/
1040
1041/^\X/8+
1042    G\x{34e}\x{34e}X
1043    \x{34e}\x{34e}X
1044    \x04X
1045    \x{1100}X
1046    \x{1100}\x{34e}X
1047    \x{1b04}\x{1b04}X
1048    *These match up to the roman letters
1049    \x{1111}\x{1111}L,L
1050    \x{1111}\x{1111}\x{1169}L,L,V
1051    \x{1111}\x{ae4c}L, LV
1052    \x{1111}\x{ad89}L, LVT
1053    \x{1111}\x{ae4c}\x{1169}L, LV, V
1054    \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
1055    \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
1056    \x{1111}\x{ad89}\x{11fe}L, LVT, T
1057    \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
1058    \x{ad89}\x{11fe}\x{11fe}LVT, T, T
1059    *These match just the first codepoint (invalid sequence)
1060    \x{1111}\x{11fe}L, T
1061    \x{ae4c}\x{1111}LV, L
1062    \x{ae4c}\x{ae4c}LV, LV
1063    \x{ae4c}\x{ad89}LV, LVT
1064    \x{1169}\x{1111}V, L
1065    \x{1169}\x{ae4c}V, LV
1066    \x{1169}\x{ad89}V, LVT
1067    \x{ad89}\x{1111}LVT, L
1068    \x{ad89}\x{1169}LVT, V
1069    \x{ad89}\x{ae4c}LVT, LV
1070    \x{ad89}\x{ad89}LVT, LVT
1071    \x{11fe}\x{1111}T, L
1072    \x{11fe}\x{1169}T, V
1073    \x{11fe}\x{ae4c}T, LV
1074    \x{11fe}\x{ad89}T, LVT
1075    *Test extend and spacing mark
1076    \x{1111}\x{ae4c}\x{0711}L, LV, extend
1077    \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
1078    \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
1079    *Test CR, LF, and control
1080    \x0d\x{0711}CR, extend
1081    \x0d\x{1b04}CR, spacingmark
1082    \x0a\x{0711}LF, extend
1083    \x0a\x{1b04}LF, spacingmark
1084    \x0b\x{0711}Control, extend
1085    \x09\x{1b04}Control, spacingmark
1086    *There are no Prepend characters, so we can't test Prepend, CR
1087
1088/^(?>\X{2})X/8+
1089    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1090
1091/^\X{2,4}X/8+
1092    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1093    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1094    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1095
1096/^\X{2,4}?X/8+
1097    \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1098    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1099    \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1100
1101/-- --/
1102
1103/\x{1e9e}+/8i
1104    \x{1e9e}\x{00df}
1105
1106/[z\x{1e9e}]+/8i
1107    \x{1e9e}\x{00df}
1108
1109/\x{00df}+/8i
1110    \x{1e9e}\x{00df}
1111
1112/[z\x{00df}]+/8i
1113    \x{1e9e}\x{00df}
1114
1115/\x{1f88}+/8i
1116    \x{1f88}\x{1f80}
1117
1118/[z\x{1f88}]+/8i
1119    \x{1f88}\x{1f80}
1120
1121/-- Perl matches these --/
1122
1123/\x{00b5}+/8i
1124    \x{00b5}\x{039c}\x{03bc}
1125
1126/\x{039c}+/8i
1127    \x{00b5}\x{039c}\x{03bc}
1128
1129/\x{03bc}+/8i
1130    \x{00b5}\x{039c}\x{03bc}
1131
1132
1133/\x{00c5}+/8i
1134    \x{00c5}\x{00e5}\x{212b}
1135
1136/\x{00e5}+/8i
1137    \x{00c5}\x{00e5}\x{212b}
1138
1139/\x{212b}+/8i
1140    \x{00c5}\x{00e5}\x{212b}
1141
1142
1143/\x{01c4}+/8i
1144    \x{01c4}\x{01c5}\x{01c6}
1145
1146/\x{01c5}+/8i
1147    \x{01c4}\x{01c5}\x{01c6}
1148
1149/\x{01c6}+/8i
1150    \x{01c4}\x{01c5}\x{01c6}
1151
1152
1153/\x{01c7}+/8i
1154    \x{01c7}\x{01c8}\x{01c9}
1155
1156/\x{01c8}+/8i
1157    \x{01c7}\x{01c8}\x{01c9}
1158
1159/\x{01c9}+/8i
1160    \x{01c7}\x{01c8}\x{01c9}
1161
1162
1163/\x{01ca}+/8i
1164    \x{01ca}\x{01cb}\x{01cc}
1165
1166/\x{01cb}+/8i
1167    \x{01ca}\x{01cb}\x{01cc}
1168
1169/\x{01cc}+/8i
1170    \x{01ca}\x{01cb}\x{01cc}
1171
1172
1173/\x{01f1}+/8i
1174    \x{01f1}\x{01f2}\x{01f3}
1175
1176/\x{01f2}+/8i
1177    \x{01f1}\x{01f2}\x{01f3}
1178
1179/\x{01f3}+/8i
1180    \x{01f1}\x{01f2}\x{01f3}
1181
1182
1183/\x{0345}+/8i
1184    \x{0345}\x{0399}\x{03b9}\x{1fbe}
1185
1186/\x{0399}+/8i
1187    \x{0345}\x{0399}\x{03b9}\x{1fbe}
1188
1189/\x{03b9}+/8i
1190    \x{0345}\x{0399}\x{03b9}\x{1fbe}
1191
1192/\x{1fbe}+/8i
1193    \x{0345}\x{0399}\x{03b9}\x{1fbe}
1194
1195
1196/\x{0392}+/8i
1197    \x{0392}\x{03b2}\x{03d0}
1198
1199/\x{03b2}+/8i
1200    \x{0392}\x{03b2}\x{03d0}
1201
1202/\x{03d0}+/8i
1203    \x{0392}\x{03b2}\x{03d0}
1204
1205
1206/\x{0395}+/8i
1207    \x{0395}\x{03b5}\x{03f5}
1208
1209/\x{03b5}+/8i
1210    \x{0395}\x{03b5}\x{03f5}
1211
1212/\x{03f5}+/8i
1213    \x{0395}\x{03b5}\x{03f5}
1214
1215
1216/\x{0398}+/8i
1217    \x{0398}\x{03b8}\x{03d1}\x{03f4}
1218
1219/\x{03b8}+/8i
1220    \x{0398}\x{03b8}\x{03d1}\x{03f4}
1221
1222/\x{03d1}+/8i
1223    \x{0398}\x{03b8}\x{03d1}\x{03f4}
1224
1225/\x{03f4}+/8i
1226    \x{0398}\x{03b8}\x{03d1}\x{03f4}
1227
1228
1229/\x{039a}+/8i
1230    \x{039a}\x{03ba}\x{03f0}
1231
1232/\x{03ba}+/8i
1233    \x{039a}\x{03ba}\x{03f0}
1234
1235/\x{03f0}+/8i
1236    \x{039a}\x{03ba}\x{03f0}
1237
1238
1239/\x{03a0}+/8i
1240    \x{03a0}\x{03c0}\x{03d6}
1241
1242/\x{03c0}+/8i
1243    \x{03a0}\x{03c0}\x{03d6}
1244
1245/\x{03d6}+/8i
1246    \x{03a0}\x{03c0}\x{03d6}
1247
1248
1249/\x{03a1}+/8i
1250    \x{03a1}\x{03c1}\x{03f1}
1251
1252/\x{03c1}+/8i
1253    \x{03a1}\x{03c1}\x{03f1}
1254
1255/\x{03f1}+/8i
1256    \x{03a1}\x{03c1}\x{03f1}
1257
1258
1259/\x{03a3}+/8i
1260    \x{03A3}\x{03C2}\x{03C3}
1261
1262/\x{03c2}+/8i
1263    \x{03A3}\x{03C2}\x{03C3}
1264
1265/\x{03c3}+/8i
1266    \x{03A3}\x{03C2}\x{03C3}
1267
1268
1269/\x{03a6}+/8i
1270    \x{03a6}\x{03c6}\x{03d5}
1271
1272/\x{03c6}+/8i
1273    \x{03a6}\x{03c6}\x{03d5}
1274
1275/\x{03d5}+/8i
1276    \x{03a6}\x{03c6}\x{03d5}
1277
1278
1279/\x{03c9}+/8i
1280    \x{03c9}\x{03a9}\x{2126}
1281
1282/\x{03a9}+/8i
1283    \x{03c9}\x{03a9}\x{2126}
1284
1285/\x{2126}+/8i
1286    \x{03c9}\x{03a9}\x{2126}
1287
1288
1289/\x{1e60}+/8i
1290    \x{1e60}\x{1e61}\x{1e9b}
1291
1292/\x{1e61}+/8i
1293    \x{1e60}\x{1e61}\x{1e9b}
1294
1295/\x{1e9b}+/8i
1296    \x{1e60}\x{1e61}\x{1e9b}
1297
1298
1299/\x{1e9e}+/8i
1300    \x{1e9e}\x{00df}
1301
1302/\x{00df}+/8i
1303    \x{1e9e}\x{00df}
1304
1305
1306/\x{1f88}+/8i
1307    \x{1f88}\x{1f80}
1308
1309/\x{1f80}+/8i
1310    \x{1f88}\x{1f80}
1311
1312/\x{004b}+/8i
1313    \x{004b}\x{006b}\x{212a}
1314
1315/\x{006b}+/8i
1316    \x{004b}\x{006b}\x{212a}
1317
1318/\x{212a}+/8i
1319    \x{004b}\x{006b}\x{212a}
1320
1321
1322/\x{0053}+/8i
1323    \x{0053}\x{0073}\x{017f}
1324
1325/\x{0073}+/8i
1326    \x{0053}\x{0073}\x{017f}
1327
1328/\x{017f}+/8i
1329    \x{0053}\x{0073}\x{017f}
1330
1331/ist/8i
1332    ikt
1333
1334/is+t/8i
1335    iSs\x{17f}t
1336    ikt
1337
1338/is+?t/8i
1339    ikt
1340
1341/is?t/8i
1342    ikt
1343
1344/is{2}t/8i
1345    iskt
1346
1347/^\p{Xuc}/8
1348    $abc
1349    @abc
1350    `abc
1351    \x{1234}abc
1352    ** Failers
1353    abc
1354
1355/^\p{Xuc}+/8
1356    $@`\x{a0}\x{1234}\x{e000}**
1357    ** Failers
1358    \x{9f}
1359
1360/^\p{Xuc}+?/8
1361    $@`\x{a0}\x{1234}\x{e000}**
1362    ** Failers
1363    \x{9f}
1364
1365/^\p{Xuc}+?\*/8
1366    $@`\x{a0}\x{1234}\x{e000}**
1367    ** Failers
1368    \x{9f}
1369
1370/^\p{Xuc}++/8
1371    $@`\x{a0}\x{1234}\x{e000}**
1372    ** Failers
1373    \x{9f}
1374
1375/^\p{Xuc}{3,5}/8
1376    $@`\x{a0}\x{1234}\x{e000}**
1377    ** Failers
1378    \x{9f}
1379
1380/^\p{Xuc}{3,5}?/8
1381    $@`\x{a0}\x{1234}\x{e000}**
1382    ** Failers
1383    \x{9f}
1384
1385/^[\p{Xuc}]/8
1386    $@`\x{a0}\x{1234}\x{e000}**
1387    ** Failers
1388    \x{9f}
1389
1390/^[\p{Xuc}]+/8
1391    $@`\x{a0}\x{1234}\x{e000}**
1392    ** Failers
1393    \x{9f}
1394
1395/^\P{Xuc}/8
1396    abc
1397    ** Failers
1398    $abc
1399    @abc
1400    `abc
1401    \x{1234}abc
1402
1403/^[\P{Xuc}]/8
1404    abc
1405    ** Failers
1406    $abc
1407    @abc
1408    `abc
1409    \x{1234}abc
1410
1411/^A\s+Z/8W
1412    A\x{2005}Z
1413    A\x{85}\x{180e}\x{2005}Z
1414
1415/^A[\s]+Z/8W
1416    A\x{2005}Z
1417    A\x{85}\x{180e}\x{2005}Z
1418
1419/-- End of testinput10 --/
1420