xref: /PHP-7.2/ext/pcre/pcrelib/testdata/testinput5 (revision ca02d9c2)
1/-- This set of tests checks the API, internals, and non-Perl stuff for UTF
2    support, excluding Unicode properties. However, tests that give different
3    results in 8-bit and 16-bit modes are excluded (see tests 16 and 17). --/
4
5< forbid W
6
7/\x{110000}/8DZ
8
9/\o{4200000}/8DZ
10
11/\x{ffffffff}/8
12
13/\o{37777777777}/8
14
15/\x{100000000}/8
16
17/\o{77777777777}/8
18
19/\x{d800}/8
20
21/\o{154000}/8
22
23/\x{dfff}/8
24
25/\o{157777}/8
26
27/\x{d7ff}/8
28
29/\o{153777}/8
30
31/\x{e000}/8
32
33/\o{170000}/8
34
35/^\x{100}a\x{1234}/8
36    \x{100}a\x{1234}bcd
37
38/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
39    \x{0041}\x{2262}\x{0391}\x{002e}
40
41/.{3,5}X/DZ8
42    \x{212ab}\x{212ab}\x{212ab}\x{861}X
43
44/.{3,5}?/DZ8
45    \x{212ab}\x{212ab}\x{212ab}\x{861}
46
47/(?<=\C)X/8
48    Should produce an error diagnostic
49
50/^[ab]/8DZ
51    bar
52    *** Failers
53    c
54    \x{ff}
55    \x{100}
56
57/^[^ab]/8DZ
58    c
59    \x{ff}
60    \x{100}
61    *** Failers
62    aaa
63
64/\x{100}*(\d+|"(?1)")/8
65    1234
66    "1234"
67    \x{100}1234
68    "\x{100}1234"
69    \x{100}\x{100}12ab
70    \x{100}\x{100}"12"
71    *** Failers
72    \x{100}\x{100}abcd
73
74/\x{100}*/8DZ
75
76/a\x{100}*/8DZ
77
78/ab\x{100}*/8DZ
79
80/\x{100}*A/8DZ
81    A
82
83/\x{100}*\d(?R)/8DZ
84
85/[Z\x{100}]/8DZ
86    Z\x{100}
87    \x{100}
88    \x{100}Z
89    *** Failers
90
91/[\x{200}-\x{100}]/8
92
93/[Ā-Ą]/8
94    \x{100}
95    \x{104}
96    *** Failers
97    \x{105}
98    \x{ff}
99
100/[z-\x{100}]/8DZ
101
102/[z\Qa-d]Ā\E]/8DZ
103    \x{100}
104    Ā
105
106/[\xFF]/DZ
107    >\xff<
108
109/[^\xFF]/DZ
110
111/[Ä-Ü]/8
112    Ö # Matches without Study
113    \x{d6}
114
115/[Ä-Ü]/8S
116    Ö <-- Same with Study
117    \x{d6}
118
119/[\x{c4}-\x{dc}]/8
120    Ö # Matches without Study
121    \x{d6}
122
123/[\x{c4}-\x{dc}]/8S
124    Ö <-- Same with Study
125    \x{d6}
126
127/[^\x{100}]abc(xyz(?1))/8DZ
128
129/[ab\x{100}]abc(xyz(?1))/8DZ
130
131/(\x{100}(b(?2)c))?/DZ8
132
133/(\x{100}(b(?2)c)){0,2}/DZ8
134
135/(\x{100}(b(?1)c))?/DZ8
136
137/(\x{100}(b(?1)c)){0,2}/DZ8
138
139/\W/8
140    A.B
141    A\x{100}B
142
143/\w/8
144    \x{100}X
145
146/^\ሴ/8DZ
147
148/\x{100}*\d/8DZ
149
150/\x{100}*\s/8DZ
151
152/\x{100}*\w/8DZ
153
154/\x{100}*\D/8DZ
155
156/\x{100}*\S/8DZ
157
158/\x{100}*\W/8DZ
159
160/()()()()()()()()()()
161 ()()()()()()()()()()
162 ()()()()()()()()()()
163 ()()()()()()()()()()
164 A (x) (?41) B/8x
165    AxxB
166
167/^[\x{100}\E-\Q\E\x{150}]/BZ8
168
169/^[\QĀ\E-\QŐ\E]/BZ8
170
171/^abc./mgx8<any>
172    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
173
174/abc.$/mgx8<any>
175    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
176
177/^a\Rb/8<bsr_unicode>
178    a\nb
179    a\rb
180    a\r\nb
181    a\x0bb
182    a\x0cb
183    a\x{85}b
184    a\x{2028}b
185    a\x{2029}b
186    ** Failers
187    a\n\rb
188
189/^a\R*b/8<bsr_unicode>
190    ab
191    a\nb
192    a\rb
193    a\r\nb
194    a\x0bb
195    a\x0c\x{2028}\x{2029}b
196    a\x{85}b
197    a\n\rb
198    a\n\r\x{85}\x0cb
199
200/^a\R+b/8<bsr_unicode>
201    a\nb
202    a\rb
203    a\r\nb
204    a\x0bb
205    a\x0c\x{2028}\x{2029}b
206    a\x{85}b
207    a\n\rb
208    a\n\r\x{85}\x0cb
209    ** Failers
210    ab
211
212/^a\R{1,3}b/8<bsr_unicode>
213    a\nb
214    a\n\rb
215    a\n\r\x{85}b
216    a\r\n\r\nb
217    a\r\n\r\n\r\nb
218    a\n\r\n\rb
219    a\n\n\r\nb
220    ** Failers
221    a\n\n\n\rb
222    a\r
223
224/\H\h\V\v/8
225    X X\x0a
226    X\x09X\x0b
227    ** Failers
228    \x{a0} X\x0a
229
230/\H*\h+\V?\v{3,4}/8
231    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
232    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
233    \x09\x20\x{a0}\x0a\x0b\x0c
234    ** Failers
235    \x09\x20\x{a0}\x0a\x0b
236
237/\H\h\V\v/8
238    \x{3001}\x{3000}\x{2030}\x{2028}
239    X\x{180e}X\x{85}
240    ** Failers
241    \x{2009} X\x0a
242
243/\H*\h+\V?\v{3,4}/8
244    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
245    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
246    \x09\x20\x{202f}\x0a\x0b\x0c
247    ** Failers
248    \x09\x{200a}\x{a0}\x{2028}\x0b
249
250/[\h]/8BZ
251    >\x{1680}
252
253/[\h]{3,}/8BZ
254    >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
255
256/[\v]/8BZ
257
258/[\H]/8BZ
259
260/[\V]/8BZ
261
262/.*$/8<any>
263    \x{1ec5}
264
265/a\Rb/I8<bsr_anycrlf>
266    a\rb
267    a\nb
268    a\r\nb
269    ** Failers
270    a\x{85}b
271    a\x0bb
272
273/a\Rb/I8<bsr_unicode>
274    a\rb
275    a\nb
276    a\r\nb
277    a\x{85}b
278    a\x0bb
279    ** Failers
280    a\x{85}b\<bsr_anycrlf>
281    a\x0bb\<bsr_anycrlf>
282
283/a\R?b/I8<bsr_anycrlf>
284    a\rb
285    a\nb
286    a\r\nb
287    ** Failers
288    a\x{85}b
289    a\x0bb
290
291/a\R?b/I8<bsr_unicode>
292    a\rb
293    a\nb
294    a\r\nb
295    a\x{85}b
296    a\x0bb
297    ** Failers
298    a\x{85}b\<bsr_anycrlf>
299    a\x0bb\<bsr_anycrlf>
300
301/.*a.*=.b.*/8<ANY>
302    QQQ\x{2029}ABCaXYZ=!bPQR
303    ** Failers
304    a\x{2029}b
305    \x61\xe2\x80\xa9\x62
306
307/[[:a\x{100}b:]]/8
308
309/a[^]b/<JS>8
310    a\x{1234}b
311    a\nb
312    ** Failers
313    ab
314
315/a[^]+b/<JS>8
316    aXb
317    a\nX\nX\x{1234}b
318    ** Failers
319    ab
320
321/(\x{de})\1/
322    \x{de}\x{de}
323
324/X/8f<any>
325    A\x{1ec5}ABCXYZ
326
327/Xa{2,4}b/8
328    X\P
329    Xa\P
330    Xaa\P
331    Xaaa\P
332    Xaaaa\P
333
334/Xa{2,4}?b/8
335    X\P
336    Xa\P
337    Xaa\P
338    Xaaa\P
339    Xaaaa\P
340
341/Xa{2,4}+b/8
342    X\P
343    Xa\P
344    Xaa\P
345    Xaaa\P
346    Xaaaa\P
347
348/X\x{123}{2,4}b/8
349    X\P
350    X\x{123}\P
351    X\x{123}\x{123}\P
352    X\x{123}\x{123}\x{123}\P
353    X\x{123}\x{123}\x{123}\x{123}\P
354
355/X\x{123}{2,4}?b/8
356    X\P
357    X\x{123}\P
358    X\x{123}\x{123}\P
359    X\x{123}\x{123}\x{123}\P
360    X\x{123}\x{123}\x{123}\x{123}\P
361
362/X\x{123}{2,4}+b/8
363    X\P
364    X\x{123}\P
365    X\x{123}\x{123}\P
366    X\x{123}\x{123}\x{123}\P
367    X\x{123}\x{123}\x{123}\x{123}\P
368
369/X\x{123}{2,4}b/8
370    Xx\P
371    X\x{123}x\P
372    X\x{123}\x{123}x\P
373    X\x{123}\x{123}\x{123}x\P
374    X\x{123}\x{123}\x{123}\x{123}x\P
375
376/X\x{123}{2,4}?b/8
377    Xx\P
378    X\x{123}x\P
379    X\x{123}\x{123}x\P
380    X\x{123}\x{123}\x{123}x\P
381    X\x{123}\x{123}\x{123}\x{123}x\P
382
383/X\x{123}{2,4}+b/8
384    Xx\P
385    X\x{123}x\P
386    X\x{123}\x{123}x\P
387    X\x{123}\x{123}\x{123}x\P
388    X\x{123}\x{123}\x{123}\x{123}x\P
389
390/X\d{2,4}b/8
391    X\P
392    X3\P
393    X33\P
394    X333\P
395    X3333\P
396
397/X\d{2,4}?b/8
398    X\P
399    X3\P
400    X33\P
401    X333\P
402    X3333\P
403
404/X\d{2,4}+b/8
405    X\P
406    X3\P
407    X33\P
408    X333\P
409    X3333\P
410
411/X\D{2,4}b/8
412    X\P
413    Xa\P
414    Xaa\P
415    Xaaa\P
416    Xaaaa\P
417
418/X\D{2,4}?b/8
419    X\P
420    Xa\P
421    Xaa\P
422    Xaaa\P
423    Xaaaa\P
424
425/X\D{2,4}+b/8
426    X\P
427    Xa\P
428    Xaa\P
429    Xaaa\P
430    Xaaaa\P
431
432/X\D{2,4}b/8
433    X\P
434    X\x{123}\P
435    X\x{123}\x{123}\P
436    X\x{123}\x{123}\x{123}\P
437    X\x{123}\x{123}\x{123}\x{123}\P
438
439/X\D{2,4}?b/8
440    X\P
441    X\x{123}\P
442    X\x{123}\x{123}\P
443    X\x{123}\x{123}\x{123}\P
444    X\x{123}\x{123}\x{123}\x{123}\P
445
446/X\D{2,4}+b/8
447    X\P
448    X\x{123}\P
449    X\x{123}\x{123}\P
450    X\x{123}\x{123}\x{123}\P
451    X\x{123}\x{123}\x{123}\x{123}\P
452
453/X[abc]{2,4}b/8
454    X\P
455    Xa\P
456    Xaa\P
457    Xaaa\P
458    Xaaaa\P
459
460/X[abc]{2,4}?b/8
461    X\P
462    Xa\P
463    Xaa\P
464    Xaaa\P
465    Xaaaa\P
466
467/X[abc]{2,4}+b/8
468    X\P
469    Xa\P
470    Xaa\P
471    Xaaa\P
472    Xaaaa\P
473
474/X[abc\x{123}]{2,4}b/8
475    X\P
476    X\x{123}\P
477    X\x{123}\x{123}\P
478    X\x{123}\x{123}\x{123}\P
479    X\x{123}\x{123}\x{123}\x{123}\P
480
481/X[abc\x{123}]{2,4}?b/8
482    X\P
483    X\x{123}\P
484    X\x{123}\x{123}\P
485    X\x{123}\x{123}\x{123}\P
486    X\x{123}\x{123}\x{123}\x{123}\P
487
488/X[abc\x{123}]{2,4}+b/8
489    X\P
490    X\x{123}\P
491    X\x{123}\x{123}\P
492    X\x{123}\x{123}\x{123}\P
493    X\x{123}\x{123}\x{123}\x{123}\P
494
495/X[^a]{2,4}b/8
496    X\P
497    Xz\P
498    Xzz\P
499    Xzzz\P
500    Xzzzz\P
501
502/X[^a]{2,4}?b/8
503    X\P
504    Xz\P
505    Xzz\P
506    Xzzz\P
507    Xzzzz\P
508
509/X[^a]{2,4}+b/8
510    X\P
511    Xz\P
512    Xzz\P
513    Xzzz\P
514    Xzzzz\P
515
516/X[^a]{2,4}b/8
517    X\P
518    X\x{123}\P
519    X\x{123}\x{123}\P
520    X\x{123}\x{123}\x{123}\P
521    X\x{123}\x{123}\x{123}\x{123}\P
522
523/X[^a]{2,4}?b/8
524    X\P
525    X\x{123}\P
526    X\x{123}\x{123}\P
527    X\x{123}\x{123}\x{123}\P
528    X\x{123}\x{123}\x{123}\x{123}\P
529
530/X[^a]{2,4}+b/8
531    X\P
532    X\x{123}\P
533    X\x{123}\x{123}\P
534    X\x{123}\x{123}\x{123}\P
535    X\x{123}\x{123}\x{123}\x{123}\P
536
537/(Y)X\1{2,4}b/8
538    YX\P
539    YXY\P
540    YXYY\P
541    YXYYY\P
542    YXYYYY\P
543
544/(Y)X\1{2,4}?b/8
545    YX\P
546    YXY\P
547    YXYY\P
548    YXYYY\P
549    YXYYYY\P
550
551/(Y)X\1{2,4}+b/8
552    YX\P
553    YXY\P
554    YXYY\P
555    YXYYY\P
556    YXYYYY\P
557
558/(\x{123})X\1{2,4}b/8
559    \x{123}X\P
560    \x{123}X\x{123}\P
561    \x{123}X\x{123}\x{123}\P
562    \x{123}X\x{123}\x{123}\x{123}\P
563    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
564
565/(\x{123})X\1{2,4}?b/8
566    \x{123}X\P
567    \x{123}X\x{123}\P
568    \x{123}X\x{123}\x{123}\P
569    \x{123}X\x{123}\x{123}\x{123}\P
570    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
571
572/(\x{123})X\1{2,4}+b/8
573    \x{123}X\P
574    \x{123}X\x{123}\P
575    \x{123}X\x{123}\x{123}\P
576    \x{123}X\x{123}\x{123}\x{123}\P
577    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
578
579/\bthe cat\b/8
580    the cat\P
581    the cat\P\P
582
583/abcd*/8
584    xxxxabcd\P
585    xxxxabcd\P\P
586
587/abcd*/i8
588    xxxxabcd\P
589    xxxxabcd\P\P
590    XXXXABCD\P
591    XXXXABCD\P\P
592
593/abc\d*/8
594    xxxxabc1\P
595    xxxxabc1\P\P
596
597/(a)bc\1*/8
598    xxxxabca\P
599    xxxxabca\P\P
600
601/abc[de]*/8
602    xxxxabcde\P
603    xxxxabcde\P\P
604
605/X\W{3}X/8
606    \PX
607
608/\sxxx\s/8T1
609    AB\x{85}xxx\x{a0}XYZ
610    AB\x{a0}xxx\x{85}XYZ
611
612/\S \S/8T1
613    \x{a2} \x{84}
614
615'A#хц'8x<any>BZ
616
617'A#хц
618  PQ'8x<any>BZ
619
620/a+#хaa
621  z#XX?/8x<any>BZ
622
623/a+#хaa
624  z#х?/8x<any>BZ
625
626/\g{A}xxx#bXX(?'A'123)
626(?'A'456)/8x<any>BZ
627
628/\g{A}xxx#bх(?'A'123)
628(?'A'456)/8x<any>BZ
629
630/^\cģ/8
631
632/(\R*)(.)/s8
633    \r\n
634    \r\r\n\n\r
635    \r\r\n\n\r\n
636
637/(\R)*(.)/s8
638    \r\n
639    \r\r\n\n\r
640    \r\r\n\n\r\n
641
642/[^\x{1234}]+/iS8I
643
644/[^\x{1234}]+?/iS8I
645
646/[^\x{1234}]++/iS8I
647
648/[^\x{1234}]{2}/iS8I
649
650//<bsr_anycrlf><bsr_unicode>
651
652/f.*/
653    \P\Pfor
654
655/f.*/s
656    \P\Pfor
657
658/f.*/8
659    \P\Pfor
660
661/f.*/8s
662    \P\Pfor
663
664/\x{d7ff}\x{e000}/8
665
666/\x{d800}/8
667
668/\x{dfff}/8
669
670/\h+/8
671    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
672    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
673
674/[\h\x{e000}]+/8BZ
675    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
676    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
677
678/\H+/8
679    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
680    \x{2000}\x{200a}\x{1fff}\x{200b}
681    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
682    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
683
684/[\H\x{d7ff}]+/8BZ
685    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
686    \x{2000}\x{200a}\x{1fff}\x{200b}
687    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
688    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
689
690/\v+/8
691    \x{2027}\x{2030}\x{2028}\x{2029}
692    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
693
694/[\v\x{e000}]+/8BZ
695    \x{2027}\x{2030}\x{2028}\x{2029}
696    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
697
698/\V+/8
699    \x{2028}\x{2029}\x{2027}\x{2030}
700    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
701
702/[\V\x{d7ff}]+/8BZ
703    \x{2028}\x{2029}\x{2027}\x{2030}
704    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
705
706/\R+/8<bsr_unicode>
707    \x{2027}\x{2030}\x{2028}\x{2029}
708    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
709
710/(..)\1/8
711    ab\P
712    aba\P
713    abab\P
714
715/(..)\1/8i
716    ab\P
717    abA\P
718    aBAb\P
719
720/(..)\1{2,}/8
721    ab\P
722    aba\P
723    abab\P
724    ababa\P
725    ababab\P
726    ababab\P\P
727    abababa\P
728    abababa\P\P
729
730/(..)\1{2,}/8i
731    ab\P
732    aBa\P
733    aBAb\P
734    AbaBA\P
735    abABAb\P
736    aBAbaB\P\P
737    abABabA\P
738    abaBABa\P\P
739
740/(..)\1{2,}?x/8i
741    ab\P
742    abA\P
743    aBAb\P
744    abaBA\P
745    abAbaB\P
746    abaBabA\P
747    abAbABaBx\P
748
749/./8<CRLF>
750    \r\P
751    \r\P\P
752
753/.{2,3}/8<CRLF>
754    \r\P
755    \r\P\P
756    \r\r\P
757    \r\r\P\P
758    \r\r\r\P
759    \r\r\r\P\P
760
761/.{2,3}?/8<CRLF>
762    \r\P
763    \r\P\P
764    \r\r\P
765    \r\r\P\P
766    \r\r\r\P
767    \r\r\r\P\P
768
769/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZ
770
771/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZi
772
773/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZ
774
775/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZi
776
777/(?<=\x{1234}\x{1234})\bxy/I8
778
779/(?<!^)ETA/8
780    ETA
781
782/\u0100/<JS>8BZ
783
784/[\u0100-\u0200]/<JS>8BZ
785
786/\ud800/<JS>8
787
788/^a+[a\x{200}]/8BZ
789    aa
790
791/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/8BZ
792
793/[^\xff]*PRUNE:\x{100}abc(xyz(?1))/8DZ
794
795/(?<=\K\x{17f})/8g+
796    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
797
798/(?<=\K\x{17f})/8G+
799    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
800
801/-- End of testinput5 --/
802