• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
8Failed: character value in \x{} or \o{} is too large at offset 9
9
10/\o{4200000}/8DZ
11Failed: character value in \x{} or \o{} is too large at offset 10
12
13/\x{ffffffff}/8
14Failed: character value in \x{} or \o{} is too large at offset 11
15
16/\o{37777777777}/8
17Failed: character value in \x{} or \o{} is too large at offset 14
18
19/\x{100000000}/8
20Failed: character value in \x{} or \o{} is too large at offset 12
21
22/\o{77777777777}/8
23Failed: character value in \x{} or \o{} is too large at offset 14
24
25/\x{d800}/8
26Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
27
28/\o{154000}/8
29Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9
30
31/\x{dfff}/8
32Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
33
34/\o{157777}/8
35Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9
36
37/\x{d7ff}/8
38
39/\o{153777}/8
40
41/\x{e000}/8
42
43/\o{170000}/8
44
45/^\x{100}a\x{1234}/8
46    \x{100}a\x{1234}bcd
47 0: \x{100}a\x{1234}
48
49/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
50------------------------------------------------------------------
51        Bra
52        A\x{2262}\x{391}.
53        Ket
54        End
55------------------------------------------------------------------
56Capturing subpattern count = 0
57Options: utf
58First char = 'A'
59Need char = '.'
60    \x{0041}\x{2262}\x{0391}\x{002e}
61 0: A\x{2262}\x{391}.
62
63/.{3,5}X/DZ8
64------------------------------------------------------------------
65        Bra
66        Any{3}
67        Any{0,2}
68        X
69        Ket
70        End
71------------------------------------------------------------------
72Capturing subpattern count = 0
73Options: utf
74No first char
75Need char = 'X'
76    \x{212ab}\x{212ab}\x{212ab}\x{861}X
77 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X
78
79/.{3,5}?/DZ8
80------------------------------------------------------------------
81        Bra
82        Any{3}
83        Any{0,2}?
84        Ket
85        End
86------------------------------------------------------------------
87Capturing subpattern count = 0
88Options: utf
89No first char
90No need char
91    \x{212ab}\x{212ab}\x{212ab}\x{861}
92 0: \x{212ab}\x{212ab}\x{212ab}
93
94/(?<=\C)X/8
95Failed: \C not allowed in lookbehind assertion at offset 6
96
97/^[ab]/8DZ
98------------------------------------------------------------------
99        Bra
100        ^
101        [ab]
102        Ket
103        End
104------------------------------------------------------------------
105Capturing subpattern count = 0
106Options: anchored utf
107No first char
108No need char
109    bar
110 0: b
111    *** Failers
112No match
113    c
114No match
115    \x{ff}
116No match
117    \x{100}
118No match
119
120/^[^ab]/8DZ
121------------------------------------------------------------------
122        Bra
123        ^
124        [\x00-`c-\xff] (neg)
125        Ket
126        End
127------------------------------------------------------------------
128Capturing subpattern count = 0
129Options: anchored utf
130No first char
131No need char
132    c
133 0: c
134    \x{ff}
135 0: \x{ff}
136    \x{100}
137 0: \x{100}
138    *** Failers
139 0: *
140    aaa
141No match
142
143/\x{100}*(\d+|"(?1)")/8
144    1234
145 0: 1234
146 1: 1234
147    "1234"
148 0: "1234"
149 1: "1234"
150    \x{100}1234
151 0: \x{100}1234
152 1: 1234
153    "\x{100}1234"
154 0: \x{100}1234
155 1: 1234
156    \x{100}\x{100}12ab
157 0: \x{100}\x{100}12
158 1: 12
159    \x{100}\x{100}"12"
160 0: \x{100}\x{100}"12"
161 1: "12"
162    *** Failers
163No match
164    \x{100}\x{100}abcd
165No match
166
167/\x{100}*/8DZ
168------------------------------------------------------------------
169        Bra
170        \x{100}*+
171        Ket
172        End
173------------------------------------------------------------------
174Capturing subpattern count = 0
175May match empty string
176Options: utf
177No first char
178No need char
179
180/a\x{100}*/8DZ
181------------------------------------------------------------------
182        Bra
183        a
184        \x{100}*+
185        Ket
186        End
187------------------------------------------------------------------
188Capturing subpattern count = 0
189Options: utf
190First char = 'a'
191No need char
192
193/ab\x{100}*/8DZ
194------------------------------------------------------------------
195        Bra
196        ab
197        \x{100}*+
198        Ket
199        End
200------------------------------------------------------------------
201Capturing subpattern count = 0
202Options: utf
203First char = 'a'
204Need char = 'b'
205
206/\x{100}*A/8DZ
207------------------------------------------------------------------
208        Bra
209        \x{100}*+
210        A
211        Ket
212        End
213------------------------------------------------------------------
214Capturing subpattern count = 0
215Options: utf
216No first char
217Need char = 'A'
218    A
219 0: A
220
221/\x{100}*\d(?R)/8DZ
222------------------------------------------------------------------
223        Bra
224        \x{100}*+
225        \d
226        Recurse
227        Ket
228        End
229------------------------------------------------------------------
230Capturing subpattern count = 0
231Options: utf
232No first char
233No need char
234
235/[Z\x{100}]/8DZ
236------------------------------------------------------------------
237        Bra
238        [Z\x{100}]
239        Ket
240        End
241------------------------------------------------------------------
242Capturing subpattern count = 0
243Options: utf
244No first char
245No need char
246    Z\x{100}
247 0: Z
248    \x{100}
249 0: \x{100}
250    \x{100}Z
251 0: \x{100}
252    *** Failers
253No match
254
255/[\x{200}-\x{100}]/8
256Failed: range out of order in character class at offset 15
257
258/[Ā-Ą]/8
259    \x{100}
260 0: \x{100}
261    \x{104}
262 0: \x{104}
263    *** Failers
264No match
265    \x{105}
266No match
267    \x{ff}
268No match
269
270/[z-\x{100}]/8DZ
271------------------------------------------------------------------
272        Bra
273        [z-\xff\x{100}]
274        Ket
275        End
276------------------------------------------------------------------
277Capturing subpattern count = 0
278Options: utf
279No first char
280No need char
281
282/[z\Qa-d]Ā\E]/8DZ
283------------------------------------------------------------------
284        Bra
285        [\-\]adz\x{100}]
286        Ket
287        End
288------------------------------------------------------------------
289Capturing subpattern count = 0
290Options: utf
291No first char
292No need char
293    \x{100}
294 0: \x{100}
295    Ā
296 0: \x{100}
297
298/[\xFF]/DZ
299------------------------------------------------------------------
300        Bra
301        \x{ff}
302        Ket
303        End
304------------------------------------------------------------------
305Capturing subpattern count = 0
306No options
307First char = \xff
308No need char
309    >\xff<
310 0: \xff
311
312/[^\xFF]/DZ
313------------------------------------------------------------------
314        Bra
315        [^\x{ff}]
316        Ket
317        End
318------------------------------------------------------------------
319Capturing subpattern count = 0
320No options
321No first char
322No need char
323
324/[Ä-Ü]/8
325    Ö # Matches without Study
326 0: \x{d6}
327    \x{d6}
328 0: \x{d6}
329
330/[Ä-Ü]/8S
331    Ö <-- Same with Study
332 0: \x{d6}
333    \x{d6}
334 0: \x{d6}
335
336/[\x{c4}-\x{dc}]/8
337    Ö # Matches without Study
338 0: \x{d6}
339    \x{d6}
340 0: \x{d6}
341
342/[\x{c4}-\x{dc}]/8S
343    Ö <-- Same with Study
344 0: \x{d6}
345    \x{d6}
346 0: \x{d6}
347
348/[^\x{100}]abc(xyz(?1))/8DZ
349------------------------------------------------------------------
350        Bra
351        [^\x{100}]
352        abc
353        CBra 1
354        xyz
355        Recurse
356        Ket
357        Ket
358        End
359------------------------------------------------------------------
360Capturing subpattern count = 1
361Options: utf
362No first char
363Need char = 'z'
364
365/[ab\x{100}]abc(xyz(?1))/8DZ
366------------------------------------------------------------------
367        Bra
368        [ab\x{100}]
369        abc
370        CBra 1
371        xyz
372        Recurse
373        Ket
374        Ket
375        End
376------------------------------------------------------------------
377Capturing subpattern count = 1
378Options: utf
379No first char
380Need char = 'z'
381
382/(\x{100}(b(?2)c))?/DZ8
383------------------------------------------------------------------
384        Bra
385        Brazero
386        CBra 1
387        \x{100}
388        CBra 2
389        b
390        Recurse
391        c
392        Ket
393        Ket
394        Ket
395        End
396------------------------------------------------------------------
397Capturing subpattern count = 2
398May match empty string
399Options: utf
400No first char
401No need char
402
403/(\x{100}(b(?2)c)){0,2}/DZ8
404------------------------------------------------------------------
405        Bra
406        Brazero
407        Bra
408        CBra 1
409        \x{100}
410        CBra 2
411        b
412        Recurse
413        c
414        Ket
415        Ket
416        Brazero
417        CBra 1
418        \x{100}
419        CBra 2
420        b
421        Recurse
422        c
423        Ket
424        Ket
425        Ket
426        Ket
427        End
428------------------------------------------------------------------
429Capturing subpattern count = 2
430May match empty string
431Options: utf
432No first char
433No need char
434
435/(\x{100}(b(?1)c))?/DZ8
436------------------------------------------------------------------
437        Bra
438        Brazero
439        CBra 1
440        \x{100}
441        CBra 2
442        b
443        Recurse
444        c
445        Ket
446        Ket
447        Ket
448        End
449------------------------------------------------------------------
450Capturing subpattern count = 2
451May match empty string
452Options: utf
453No first char
454No need char
455
456/(\x{100}(b(?1)c)){0,2}/DZ8
457------------------------------------------------------------------
458        Bra
459        Brazero
460        Bra
461        CBra 1
462        \x{100}
463        CBra 2
464        b
465        Recurse
466        c
467        Ket
468        Ket
469        Brazero
470        CBra 1
471        \x{100}
472        CBra 2
473        b
474        Recurse
475        c
476        Ket
477        Ket
478        Ket
479        Ket
480        End
481------------------------------------------------------------------
482Capturing subpattern count = 2
483May match empty string
484Options: utf
485No first char
486No need char
487
488/\W/8
489    A.B
490 0: .
491    A\x{100}B
492 0: \x{100}
493
494/\w/8
495    \x{100}X
496 0: X
497
498/^\ሴ/8DZ
499------------------------------------------------------------------
500        Bra
501        ^
502        \x{1234}
503        Ket
504        End
505------------------------------------------------------------------
506Capturing subpattern count = 0
507Options: anchored utf
508No first char
509No need char
510
511/\x{100}*\d/8DZ
512------------------------------------------------------------------
513        Bra
514        \x{100}*+
515        \d
516        Ket
517        End
518------------------------------------------------------------------
519Capturing subpattern count = 0
520Options: utf
521No first char
522No need char
523
524/\x{100}*\s/8DZ
525------------------------------------------------------------------
526        Bra
527        \x{100}*+
528        \s
529        Ket
530        End
531------------------------------------------------------------------
532Capturing subpattern count = 0
533Options: utf
534No first char
535No need char
536
537/\x{100}*\w/8DZ
538------------------------------------------------------------------
539        Bra
540        \x{100}*+
541        \w
542        Ket
543        End
544------------------------------------------------------------------
545Capturing subpattern count = 0
546Options: utf
547No first char
548No need char
549
550/\x{100}*\D/8DZ
551------------------------------------------------------------------
552        Bra
553        \x{100}*
554        \D
555        Ket
556        End
557------------------------------------------------------------------
558Capturing subpattern count = 0
559Options: utf
560No first char
561No need char
562
563/\x{100}*\S/8DZ
564------------------------------------------------------------------
565        Bra
566        \x{100}*
567        \S
568        Ket
569        End
570------------------------------------------------------------------
571Capturing subpattern count = 0
572Options: utf
573No first char
574No need char
575
576/\x{100}*\W/8DZ
577------------------------------------------------------------------
578        Bra
579        \x{100}*
580        \W
581        Ket
582        End
583------------------------------------------------------------------
584Capturing subpattern count = 0
585Options: utf
586No first char
587No need char
588
589/()()()()()()()()()()
590 ()()()()()()()()()()
591 ()()()()()()()()()()
592 ()()()()()()()()()()
593 A (x) (?41) B/8x
594    AxxB
595Matched, but too many substrings
596 0: AxxB
597 1:
598 2:
599 3:
600 4:
601 5:
602 6:
603 7:
604 8:
605 9:
60610:
60711:
60812:
60913:
61014:
611
612/^[\x{100}\E-\Q\E\x{150}]/BZ8
613------------------------------------------------------------------
614        Bra
615        ^
616        [\x{100}-\x{150}]
617        Ket
618        End
619------------------------------------------------------------------
620
621/^[\QĀ\E-\QŐ\E]/BZ8
622------------------------------------------------------------------
623        Bra
624        ^
625        [\x{100}-\x{150}]
626        Ket
627        End
628------------------------------------------------------------------
629
630/^abc./mgx8<any>
631    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
632 0: abc1
633 0: abc2
634 0: abc3
635 0: abc4
636 0: abc5
637 0: abc6
638 0: abc7
639 0: abc8
640 0: abc9
641
642/abc.$/mgx8<any>
643    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
644 0: abc1
645 0: abc2
646 0: abc3
647 0: abc4
648 0: abc5
649 0: abc6
650 0: abc7
651 0: abc8
652 0: abc9
653
654/^a\Rb/8<bsr_unicode>
655    a\nb
656 0: a\x{0a}b
657    a\rb
658 0: a\x{0d}b
659    a\r\nb
660 0: a\x{0d}\x{0a}b
661    a\x0bb
662 0: a\x{0b}b
663    a\x0cb
664 0: a\x{0c}b
665    a\x{85}b
666 0: a\x{85}b
667    a\x{2028}b
668 0: a\x{2028}b
669    a\x{2029}b
670 0: a\x{2029}b
671    ** Failers
672No match
673    a\n\rb
674No match
675
676/^a\R*b/8<bsr_unicode>
677    ab
678 0: ab
679    a\nb
680 0: a\x{0a}b
681    a\rb
682 0: a\x{0d}b
683    a\r\nb
684 0: a\x{0d}\x{0a}b
685    a\x0bb
686 0: a\x{0b}b
687    a\x0c\x{2028}\x{2029}b
688 0: a\x{0c}\x{2028}\x{2029}b
689    a\x{85}b
690 0: a\x{85}b
691    a\n\rb
692 0: a\x{0a}\x{0d}b
693    a\n\r\x{85}\x0cb
694 0: a\x{0a}\x{0d}\x{85}\x{0c}b
695
696/^a\R+b/8<bsr_unicode>
697    a\nb
698 0: a\x{0a}b
699    a\rb
700 0: a\x{0d}b
701    a\r\nb
702 0: a\x{0d}\x{0a}b
703    a\x0bb
704 0: a\x{0b}b
705    a\x0c\x{2028}\x{2029}b
706 0: a\x{0c}\x{2028}\x{2029}b
707    a\x{85}b
708 0: a\x{85}b
709    a\n\rb
710 0: a\x{0a}\x{0d}b
711    a\n\r\x{85}\x0cb
712 0: a\x{0a}\x{0d}\x{85}\x{0c}b
713    ** Failers
714No match
715    ab
716No match
717
718/^a\R{1,3}b/8<bsr_unicode>
719    a\nb
720 0: a\x{0a}b
721    a\n\rb
722 0: a\x{0a}\x{0d}b
723    a\n\r\x{85}b
724 0: a\x{0a}\x{0d}\x{85}b
725    a\r\n\r\nb
726 0: a\x{0d}\x{0a}\x{0d}\x{0a}b
727    a\r\n\r\n\r\nb
728 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
729    a\n\r\n\rb
730 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
731    a\n\n\r\nb
732 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
733    ** Failers
734No match
735    a\n\n\n\rb
736No match
737    a\r
738No match
739
740/\H\h\V\v/8
741    X X\x0a
742 0: X X\x{0a}
743    X\x09X\x0b
744 0: X\x{09}X\x{0b}
745    ** Failers
746No match
747    \x{a0} X\x0a
748No match
749
750/\H*\h+\V?\v{3,4}/8
751    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
752 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
753    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
754 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
755    \x09\x20\x{a0}\x0a\x0b\x0c
756 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
757    ** Failers
758No match
759    \x09\x20\x{a0}\x0a\x0b
760No match
761
762/\H\h\V\v/8
763    \x{3001}\x{3000}\x{2030}\x{2028}
764 0: \x{3001}\x{3000}\x{2030}\x{2028}
765    X\x{180e}X\x{85}
766 0: X\x{180e}X\x{85}
767    ** Failers
768No match
769    \x{2009} X\x0a
770No match
771
772/\H*\h+\V?\v{3,4}/8
773    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
774 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
775    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
776 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
777    \x09\x20\x{202f}\x0a\x0b\x0c
778 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
779    ** Failers
780No match
781    \x09\x{200a}\x{a0}\x{2028}\x0b
782No match
783
784/[\h]/8BZ
785------------------------------------------------------------------
786        Bra
787        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
788        Ket
789        End
790------------------------------------------------------------------
791    >\x{1680}
792 0: \x{1680}
793
794/[\h]{3,}/8BZ
795------------------------------------------------------------------
796        Bra
797        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}+
798        Ket
799        End
800------------------------------------------------------------------
801    >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
802 0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}
803
804/[\v]/8BZ
805------------------------------------------------------------------
806        Bra
807        [\x0a-\x0d\x85\x{2028}-\x{2029}]
808        Ket
809        End
810------------------------------------------------------------------
811
812/[\H]/8BZ
813------------------------------------------------------------------
814        Bra
815        [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}]
816        Ket
817        End
818------------------------------------------------------------------
819
820/[\V]/8BZ
821------------------------------------------------------------------
822        Bra
823        [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}]
824        Ket
825        End
826------------------------------------------------------------------
827
828/.*$/8<any>
829    \x{1ec5}
830 0: \x{1ec5}
831
832/a\Rb/I8<bsr_anycrlf>
833Capturing subpattern count = 0
834Options: bsr_anycrlf utf
835First char = 'a'
836Need char = 'b'
837    a\rb
838 0: a\x{0d}b
839    a\nb
840 0: a\x{0a}b
841    a\r\nb
842 0: a\x{0d}\x{0a}b
843    ** Failers
844No match
845    a\x{85}b
846No match
847    a\x0bb
848No match
849
850/a\Rb/I8<bsr_unicode>
851Capturing subpattern count = 0
852Options: bsr_unicode utf
853First char = 'a'
854Need char = 'b'
855    a\rb
856 0: a\x{0d}b
857    a\nb
858 0: a\x{0a}b
859    a\r\nb
860 0: a\x{0d}\x{0a}b
861    a\x{85}b
862 0: a\x{85}b
863    a\x0bb
864 0: a\x{0b}b
865    ** Failers
866No match
867    a\x{85}b\<bsr_anycrlf>
868No match
869    a\x0bb\<bsr_anycrlf>
870No match
871
872/a\R?b/I8<bsr_anycrlf>
873Capturing subpattern count = 0
874Options: bsr_anycrlf utf
875First char = 'a'
876Need char = 'b'
877    a\rb
878 0: a\x{0d}b
879    a\nb
880 0: a\x{0a}b
881    a\r\nb
882 0: a\x{0d}\x{0a}b
883    ** Failers
884No match
885    a\x{85}b
886No match
887    a\x0bb
888No match
889
890/a\R?b/I8<bsr_unicode>
891Capturing subpattern count = 0
892Options: bsr_unicode utf
893First char = 'a'
894Need char = 'b'
895    a\rb
896 0: a\x{0d}b
897    a\nb
898 0: a\x{0a}b
899    a\r\nb
900 0: a\x{0d}\x{0a}b
901    a\x{85}b
902 0: a\x{85}b
903    a\x0bb
904 0: a\x{0b}b
905    ** Failers
906No match
907    a\x{85}b\<bsr_anycrlf>
908No match
909    a\x0bb\<bsr_anycrlf>
910No match
911
912/.*a.*=.b.*/8<ANY>
913    QQQ\x{2029}ABCaXYZ=!bPQR
914 0: ABCaXYZ=!bPQR
915    ** Failers
916No match
917    a\x{2029}b
918No match
919    \x61\xe2\x80\xa9\x62
920No match
921
922/[[:a\x{100}b:]]/8
923Failed: unknown POSIX class name at offset 3
924
925/a[^]b/<JS>8
926    a\x{1234}b
927 0: a\x{1234}b
928    a\nb
929 0: a\x{0a}b
930    ** Failers
931No match
932    ab
933No match
934
935/a[^]+b/<JS>8
936    aXb
937 0: aXb
938    a\nX\nX\x{1234}b
939 0: a\x{0a}X\x{0a}X\x{1234}b
940    ** Failers
941No match
942    ab
943No match
944
945/(\x{de})\1/
946    \x{de}\x{de}
947 0: \xde\xde
948 1: \xde
949
950/X/8f<any>
951    A\x{1ec5}ABCXYZ
952 0: X
953
954/Xa{2,4}b/8
955    X\P
956Partial match: X
957    Xa\P
958Partial match: Xa
959    Xaa\P
960Partial match: Xaa
961    Xaaa\P
962Partial match: Xaaa
963    Xaaaa\P
964Partial match: Xaaaa
965
966/Xa{2,4}?b/8
967    X\P
968Partial match: X
969    Xa\P
970Partial match: Xa
971    Xaa\P
972Partial match: Xaa
973    Xaaa\P
974Partial match: Xaaa
975    Xaaaa\P
976Partial match: Xaaaa
977
978/Xa{2,4}+b/8
979    X\P
980Partial match: X
981    Xa\P
982Partial match: Xa
983    Xaa\P
984Partial match: Xaa
985    Xaaa\P
986Partial match: Xaaa
987    Xaaaa\P
988Partial match: Xaaaa
989
990/X\x{123}{2,4}b/8
991    X\P
992Partial match: X
993    X\x{123}\P
994Partial match: X\x{123}
995    X\x{123}\x{123}\P
996Partial match: X\x{123}\x{123}
997    X\x{123}\x{123}\x{123}\P
998Partial match: X\x{123}\x{123}\x{123}
999    X\x{123}\x{123}\x{123}\x{123}\P
1000Partial match: X\x{123}\x{123}\x{123}\x{123}
1001
1002/X\x{123}{2,4}?b/8
1003    X\P
1004Partial match: X
1005    X\x{123}\P
1006Partial match: X\x{123}
1007    X\x{123}\x{123}\P
1008Partial match: X\x{123}\x{123}
1009    X\x{123}\x{123}\x{123}\P
1010Partial match: X\x{123}\x{123}\x{123}
1011    X\x{123}\x{123}\x{123}\x{123}\P
1012Partial match: X\x{123}\x{123}\x{123}\x{123}
1013
1014/X\x{123}{2,4}+b/8
1015    X\P
1016Partial match: X
1017    X\x{123}\P
1018Partial match: X\x{123}
1019    X\x{123}\x{123}\P
1020Partial match: X\x{123}\x{123}
1021    X\x{123}\x{123}\x{123}\P
1022Partial match: X\x{123}\x{123}\x{123}
1023    X\x{123}\x{123}\x{123}\x{123}\P
1024Partial match: X\x{123}\x{123}\x{123}\x{123}
1025
1026/X\x{123}{2,4}b/8
1027    Xx\P
1028No match
1029    X\x{123}x\P
1030No match
1031    X\x{123}\x{123}x\P
1032No match
1033    X\x{123}\x{123}\x{123}x\P
1034No match
1035    X\x{123}\x{123}\x{123}\x{123}x\P
1036No match
1037
1038/X\x{123}{2,4}?b/8
1039    Xx\P
1040No match
1041    X\x{123}x\P
1042No match
1043    X\x{123}\x{123}x\P
1044No match
1045    X\x{123}\x{123}\x{123}x\P
1046No match
1047    X\x{123}\x{123}\x{123}\x{123}x\P
1048No match
1049
1050/X\x{123}{2,4}+b/8
1051    Xx\P
1052No match
1053    X\x{123}x\P
1054No match
1055    X\x{123}\x{123}x\P
1056No match
1057    X\x{123}\x{123}\x{123}x\P
1058No match
1059    X\x{123}\x{123}\x{123}\x{123}x\P
1060No match
1061
1062/X\d{2,4}b/8
1063    X\P
1064Partial match: X
1065    X3\P
1066Partial match: X3
1067    X33\P
1068Partial match: X33
1069    X333\P
1070Partial match: X333
1071    X3333\P
1072Partial match: X3333
1073
1074/X\d{2,4}?b/8
1075    X\P
1076Partial match: X
1077    X3\P
1078Partial match: X3
1079    X33\P
1080Partial match: X33
1081    X333\P
1082Partial match: X333
1083    X3333\P
1084Partial match: X3333
1085
1086/X\d{2,4}+b/8
1087    X\P
1088Partial match: X
1089    X3\P
1090Partial match: X3
1091    X33\P
1092Partial match: X33
1093    X333\P
1094Partial match: X333
1095    X3333\P
1096Partial match: X3333
1097
1098/X\D{2,4}b/8
1099    X\P
1100Partial match: X
1101    Xa\P
1102Partial match: Xa
1103    Xaa\P
1104Partial match: Xaa
1105    Xaaa\P
1106Partial match: Xaaa
1107    Xaaaa\P
1108Partial match: Xaaaa
1109
1110/X\D{2,4}?b/8
1111    X\P
1112Partial match: X
1113    Xa\P
1114Partial match: Xa
1115    Xaa\P
1116Partial match: Xaa
1117    Xaaa\P
1118Partial match: Xaaa
1119    Xaaaa\P
1120Partial match: Xaaaa
1121
1122/X\D{2,4}+b/8
1123    X\P
1124Partial match: X
1125    Xa\P
1126Partial match: Xa
1127    Xaa\P
1128Partial match: Xaa
1129    Xaaa\P
1130Partial match: Xaaa
1131    Xaaaa\P
1132Partial match: Xaaaa
1133
1134/X\D{2,4}b/8
1135    X\P
1136Partial match: X
1137    X\x{123}\P
1138Partial match: X\x{123}
1139    X\x{123}\x{123}\P
1140Partial match: X\x{123}\x{123}
1141    X\x{123}\x{123}\x{123}\P
1142Partial match: X\x{123}\x{123}\x{123}
1143    X\x{123}\x{123}\x{123}\x{123}\P
1144Partial match: X\x{123}\x{123}\x{123}\x{123}
1145
1146/X\D{2,4}?b/8
1147    X\P
1148Partial match: X
1149    X\x{123}\P
1150Partial match: X\x{123}
1151    X\x{123}\x{123}\P
1152Partial match: X\x{123}\x{123}
1153    X\x{123}\x{123}\x{123}\P
1154Partial match: X\x{123}\x{123}\x{123}
1155    X\x{123}\x{123}\x{123}\x{123}\P
1156Partial match: X\x{123}\x{123}\x{123}\x{123}
1157
1158/X\D{2,4}+b/8
1159    X\P
1160Partial match: X
1161    X\x{123}\P
1162Partial match: X\x{123}
1163    X\x{123}\x{123}\P
1164Partial match: X\x{123}\x{123}
1165    X\x{123}\x{123}\x{123}\P
1166Partial match: X\x{123}\x{123}\x{123}
1167    X\x{123}\x{123}\x{123}\x{123}\P
1168Partial match: X\x{123}\x{123}\x{123}\x{123}
1169
1170/X[abc]{2,4}b/8
1171    X\P
1172Partial match: X
1173    Xa\P
1174Partial match: Xa
1175    Xaa\P
1176Partial match: Xaa
1177    Xaaa\P
1178Partial match: Xaaa
1179    Xaaaa\P
1180Partial match: Xaaaa
1181
1182/X[abc]{2,4}?b/8
1183    X\P
1184Partial match: X
1185    Xa\P
1186Partial match: Xa
1187    Xaa\P
1188Partial match: Xaa
1189    Xaaa\P
1190Partial match: Xaaa
1191    Xaaaa\P
1192Partial match: Xaaaa
1193
1194/X[abc]{2,4}+b/8
1195    X\P
1196Partial match: X
1197    Xa\P
1198Partial match: Xa
1199    Xaa\P
1200Partial match: Xaa
1201    Xaaa\P
1202Partial match: Xaaa
1203    Xaaaa\P
1204Partial match: Xaaaa
1205
1206/X[abc\x{123}]{2,4}b/8
1207    X\P
1208Partial match: X
1209    X\x{123}\P
1210Partial match: X\x{123}
1211    X\x{123}\x{123}\P
1212Partial match: X\x{123}\x{123}
1213    X\x{123}\x{123}\x{123}\P
1214Partial match: X\x{123}\x{123}\x{123}
1215    X\x{123}\x{123}\x{123}\x{123}\P
1216Partial match: X\x{123}\x{123}\x{123}\x{123}
1217
1218/X[abc\x{123}]{2,4}?b/8
1219    X\P
1220Partial match: X
1221    X\x{123}\P
1222Partial match: X\x{123}
1223    X\x{123}\x{123}\P
1224Partial match: X\x{123}\x{123}
1225    X\x{123}\x{123}\x{123}\P
1226Partial match: X\x{123}\x{123}\x{123}
1227    X\x{123}\x{123}\x{123}\x{123}\P
1228Partial match: X\x{123}\x{123}\x{123}\x{123}
1229
1230/X[abc\x{123}]{2,4}+b/8
1231    X\P
1232Partial match: X
1233    X\x{123}\P
1234Partial match: X\x{123}
1235    X\x{123}\x{123}\P
1236Partial match: X\x{123}\x{123}
1237    X\x{123}\x{123}\x{123}\P
1238Partial match: X\x{123}\x{123}\x{123}
1239    X\x{123}\x{123}\x{123}\x{123}\P
1240Partial match: X\x{123}\x{123}\x{123}\x{123}
1241
1242/X[^a]{2,4}b/8
1243    X\P
1244Partial match: X
1245    Xz\P
1246Partial match: Xz
1247    Xzz\P
1248Partial match: Xzz
1249    Xzzz\P
1250Partial match: Xzzz
1251    Xzzzz\P
1252Partial match: Xzzzz
1253
1254/X[^a]{2,4}?b/8
1255    X\P
1256Partial match: X
1257    Xz\P
1258Partial match: Xz
1259    Xzz\P
1260Partial match: Xzz
1261    Xzzz\P
1262Partial match: Xzzz
1263    Xzzzz\P
1264Partial match: Xzzzz
1265
1266/X[^a]{2,4}+b/8
1267    X\P
1268Partial match: X
1269    Xz\P
1270Partial match: Xz
1271    Xzz\P
1272Partial match: Xzz
1273    Xzzz\P
1274Partial match: Xzzz
1275    Xzzzz\P
1276Partial match: Xzzzz
1277
1278/X[^a]{2,4}b/8
1279    X\P
1280Partial match: X
1281    X\x{123}\P
1282Partial match: X\x{123}
1283    X\x{123}\x{123}\P
1284Partial match: X\x{123}\x{123}
1285    X\x{123}\x{123}\x{123}\P
1286Partial match: X\x{123}\x{123}\x{123}
1287    X\x{123}\x{123}\x{123}\x{123}\P
1288Partial match: X\x{123}\x{123}\x{123}\x{123}
1289
1290/X[^a]{2,4}?b/8
1291    X\P
1292Partial match: X
1293    X\x{123}\P
1294Partial match: X\x{123}
1295    X\x{123}\x{123}\P
1296Partial match: X\x{123}\x{123}
1297    X\x{123}\x{123}\x{123}\P
1298Partial match: X\x{123}\x{123}\x{123}
1299    X\x{123}\x{123}\x{123}\x{123}\P
1300Partial match: X\x{123}\x{123}\x{123}\x{123}
1301
1302/X[^a]{2,4}+b/8
1303    X\P
1304Partial match: X
1305    X\x{123}\P
1306Partial match: X\x{123}
1307    X\x{123}\x{123}\P
1308Partial match: X\x{123}\x{123}
1309    X\x{123}\x{123}\x{123}\P
1310Partial match: X\x{123}\x{123}\x{123}
1311    X\x{123}\x{123}\x{123}\x{123}\P
1312Partial match: X\x{123}\x{123}\x{123}\x{123}
1313
1314/(Y)X\1{2,4}b/8
1315    YX\P
1316Partial match: YX
1317    YXY\P
1318Partial match: YXY
1319    YXYY\P
1320Partial match: YXYY
1321    YXYYY\P
1322Partial match: YXYYY
1323    YXYYYY\P
1324Partial match: YXYYYY
1325
1326/(Y)X\1{2,4}?b/8
1327    YX\P
1328Partial match: YX
1329    YXY\P
1330Partial match: YXY
1331    YXYY\P
1332Partial match: YXYY
1333    YXYYY\P
1334Partial match: YXYYY
1335    YXYYYY\P
1336Partial match: YXYYYY
1337
1338/(Y)X\1{2,4}+b/8
1339    YX\P
1340Partial match: YX
1341    YXY\P
1342Partial match: YXY
1343    YXYY\P
1344Partial match: YXYY
1345    YXYYY\P
1346Partial match: YXYYY
1347    YXYYYY\P
1348Partial match: YXYYYY
1349
1350/(\x{123})X\1{2,4}b/8
1351    \x{123}X\P
1352Partial match: \x{123}X
1353    \x{123}X\x{123}\P
1354Partial match: \x{123}X\x{123}
1355    \x{123}X\x{123}\x{123}\P
1356Partial match: \x{123}X\x{123}\x{123}
1357    \x{123}X\x{123}\x{123}\x{123}\P
1358Partial match: \x{123}X\x{123}\x{123}\x{123}
1359    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
1360Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1361
1362/(\x{123})X\1{2,4}?b/8
1363    \x{123}X\P
1364Partial match: \x{123}X
1365    \x{123}X\x{123}\P
1366Partial match: \x{123}X\x{123}
1367    \x{123}X\x{123}\x{123}\P
1368Partial match: \x{123}X\x{123}\x{123}
1369    \x{123}X\x{123}\x{123}\x{123}\P
1370Partial match: \x{123}X\x{123}\x{123}\x{123}
1371    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
1372Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1373
1374/(\x{123})X\1{2,4}+b/8
1375    \x{123}X\P
1376Partial match: \x{123}X
1377    \x{123}X\x{123}\P
1378Partial match: \x{123}X\x{123}
1379    \x{123}X\x{123}\x{123}\P
1380Partial match: \x{123}X\x{123}\x{123}
1381    \x{123}X\x{123}\x{123}\x{123}\P
1382Partial match: \x{123}X\x{123}\x{123}\x{123}
1383    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
1384Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
1385
1386/\bthe cat\b/8
1387    the cat\P
1388 0: the cat
1389    the cat\P\P
1390Partial match: the cat
1391
1392/abcd*/8
1393    xxxxabcd\P
1394 0: abcd
1395    xxxxabcd\P\P
1396Partial match: abcd
1397
1398/abcd*/i8
1399    xxxxabcd\P
1400 0: abcd
1401    xxxxabcd\P\P
1402Partial match: abcd
1403    XXXXABCD\P
1404 0: ABCD
1405    XXXXABCD\P\P
1406Partial match: ABCD
1407
1408/abc\d*/8
1409    xxxxabc1\P
1410 0: abc1
1411    xxxxabc1\P\P
1412Partial match: abc1
1413
1414/(a)bc\1*/8
1415    xxxxabca\P
1416 0: abca
1417 1: a
1418    xxxxabca\P\P
1419Partial match: abca
1420
1421/abc[de]*/8
1422    xxxxabcde\P
1423 0: abcde
1424    xxxxabcde\P\P
1425Partial match: abcde
1426
1427/X\W{3}X/8
1428    \PX
1429Partial match: X
1430
1431/\sxxx\s/8T1
1432    AB\x{85}xxx\x{a0}XYZ
1433 0: \x{85}xxx\x{a0}
1434    AB\x{a0}xxx\x{85}XYZ
1435 0: \x{a0}xxx\x{85}
1436
1437/\S \S/8T1
1438    \x{a2} \x{84}
1439 0: \x{a2} \x{84}
1440
1441'A#хц'8x<any>BZ
1442------------------------------------------------------------------
1443        Bra
1444        A
1445        Ket
1446        End
1447------------------------------------------------------------------
1448
1449'A#хц
1450  PQ'8x<any>BZ
1451------------------------------------------------------------------
1452        Bra
1453        APQ
1454        Ket
1455        End
1456------------------------------------------------------------------
1457
1458/a+#хaa
1459  z#XX?/8x<any>BZ
1460------------------------------------------------------------------
1461        Bra
1462        a++
1463        z
1464        Ket
1465        End
1466------------------------------------------------------------------
1467
1468/a+#хaa
1469  z#х?/8x<any>BZ
1470------------------------------------------------------------------
1471        Bra
1472        a++
1473        z
1474        Ket
1475        End
1476------------------------------------------------------------------
1477
1478/\g{A}xxx#bXX(?'A'123)
1479(?'A'456)/8x<any>BZ
1480------------------------------------------------------------------
1481        Bra
1482        \1
1483        xxx
1484        CBra 1
1485        456
1486        Ket
1487        Ket
1488        End
1489------------------------------------------------------------------
1490
1491/\g{A}xxx#bх(?'A'123)
1492(?'A'456)/8x<any>BZ
1493------------------------------------------------------------------
1494        Bra
1495        \1
1496        xxx
1497        CBra 1
1498        456
1499        Ket
1500        Ket
1501        End
1502------------------------------------------------------------------
1503
1504/^\cģ/8
1505Failed: \c must be followed by an ASCII character at offset 3
1506
1507/(\R*)(.)/s8
1508    \r\n
1509 0: \x{0d}
1510 1:
1511 2: \x{0d}
1512    \r\r\n\n\r
1513 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1514 1: \x{0d}\x{0d}\x{0a}\x{0a}
1515 2: \x{0d}
1516    \r\r\n\n\r\n
1517 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1518 1: \x{0d}\x{0d}\x{0a}\x{0a}
1519 2: \x{0d}
1520
1521/(\R)*(.)/s8
1522    \r\n
1523 0: \x{0d}
1524 1: <unset>
1525 2: \x{0d}
1526    \r\r\n\n\r
1527 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1528 1: \x{0a}
1529 2: \x{0d}
1530    \r\r\n\n\r\n
1531 0: \x{0d}\x{0d}\x{0a}\x{0a}\x{0d}
1532 1: \x{0a}
1533 2: \x{0d}
1534
1535/[^\x{1234}]+/iS8I
1536Capturing subpattern count = 0
1537Options: caseless utf
1538No first char
1539No need char
1540Subject length lower bound = 1
1541No starting char list
1542
1543/[^\x{1234}]+?/iS8I
1544Capturing subpattern count = 0
1545Options: caseless utf
1546No first char
1547No need char
1548Subject length lower bound = 1
1549No starting char list
1550
1551/[^\x{1234}]++/iS8I
1552Capturing subpattern count = 0
1553Options: caseless utf
1554No first char
1555No need char
1556Subject length lower bound = 1
1557No starting char list
1558
1559/[^\x{1234}]{2}/iS8I
1560Capturing subpattern count = 0
1561Options: caseless utf
1562No first char
1563No need char
1564Subject length lower bound = 2
1565No starting char list
1566
1567//<bsr_anycrlf><bsr_unicode>
1568Failed: inconsistent NEWLINE options at offset 0
1569
1570/f.*/
1571    \P\Pfor
1572Partial match: for
1573
1574/f.*/s
1575    \P\Pfor
1576Partial match: for
1577
1578/f.*/8
1579    \P\Pfor
1580Partial match: for
1581
1582/f.*/8s
1583    \P\Pfor
1584Partial match: for
1585
1586/\x{d7ff}\x{e000}/8
1587
1588/\x{d800}/8
1589Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
1590
1591/\x{dfff}/8
1592Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 7
1593
1594/\h+/8
1595    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
1596 0: \x{1680}\x{2000}\x{202f}\x{3000}
1597    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
1598 0: \x{200a}\x{a0}\x{2000}
1599
1600/[\h\x{e000}]+/8BZ
1601------------------------------------------------------------------
1602        Bra
1603        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{e000}]++
1604        Ket
1605        End
1606------------------------------------------------------------------
1607    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
1608 0: \x{1680}\x{2000}\x{202f}\x{3000}
1609    \x{3001}\x{2fff}\x{200a}\x{a0}\x{2000}
1610 0: \x{200a}\x{a0}\x{2000}
1611
1612/\H+/8
1613    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
1614 0: \x{167f}\x{1681}\x{180d}\x{180f}
1615    \x{2000}\x{200a}\x{1fff}\x{200b}
1616 0: \x{1fff}\x{200b}
1617    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
1618 0: \x{202e}\x{2030}\x{205e}\x{2060}
1619    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
1620 0: \x{9f}\x{a1}\x{2fff}\x{3001}
1621
1622/[\H\x{d7ff}]+/8BZ
1623------------------------------------------------------------------
1624        Bra
1625        [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{10ffff}\x{d7ff}]++
1626        Ket
1627        End
1628------------------------------------------------------------------
1629    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
1630 0: \x{167f}\x{1681}\x{180d}\x{180f}
1631    \x{2000}\x{200a}\x{1fff}\x{200b}
1632 0: \x{1fff}\x{200b}
1633    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
1634 0: \x{202e}\x{2030}\x{205e}\x{2060}
1635    \x{a0}\x{3000}\x{9f}\x{a1}\x{2fff}\x{3001}
1636 0: \x{9f}\x{a1}\x{2fff}\x{3001}
1637
1638/\v+/8
1639    \x{2027}\x{2030}\x{2028}\x{2029}
1640 0: \x{2028}\x{2029}
1641    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1642 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1643
1644/[\v\x{e000}]+/8BZ
1645------------------------------------------------------------------
1646        Bra
1647        [\x0a-\x0d\x85\x{2028}-\x{2029}\x{e000}]++
1648        Ket
1649        End
1650------------------------------------------------------------------
1651    \x{2027}\x{2030}\x{2028}\x{2029}
1652 0: \x{2028}\x{2029}
1653    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1654 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1655
1656/\V+/8
1657    \x{2028}\x{2029}\x{2027}\x{2030}
1658 0: \x{2027}\x{2030}
1659    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
1660 0: \x{09}\x{0e}\x{84}\x{86}
1661
1662/[\V\x{d7ff}]+/8BZ
1663------------------------------------------------------------------
1664        Bra
1665        [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{10ffff}\x{d7ff}]++
1666        Ket
1667        End
1668------------------------------------------------------------------
1669    \x{2028}\x{2029}\x{2027}\x{2030}
1670 0: \x{2027}\x{2030}
1671    \x{85}\x0a\x0b\x0c\x0d\x09\x0e\x{84}\x{86}
1672 0: \x{09}\x{0e}\x{84}\x{86}
1673
1674/\R+/8<bsr_unicode>
1675    \x{2027}\x{2030}\x{2028}\x{2029}
1676 0: \x{2028}\x{2029}
1677    \x09\x0e\x{84}\x{86}\x{85}\x0a\x0b\x0c\x0d
1678 0: \x{85}\x{0a}\x{0b}\x{0c}\x{0d}
1679
1680/(..)\1/8
1681    ab\P
1682Partial match: ab
1683    aba\P
1684Partial match: aba
1685    abab\P
1686 0: abab
1687 1: ab
1688
1689/(..)\1/8i
1690    ab\P
1691Partial match: ab
1692    abA\P
1693Partial match: abA
1694    aBAb\P
1695 0: aBAb
1696 1: aB
1697
1698/(..)\1{2,}/8
1699    ab\P
1700Partial match: ab
1701    aba\P
1702Partial match: aba
1703    abab\P
1704Partial match: abab
1705    ababa\P
1706Partial match: ababa
1707    ababab\P
1708 0: ababab
1709 1: ab
1710    ababab\P\P
1711Partial match: ababab
1712    abababa\P
1713 0: ababab
1714 1: ab
1715    abababa\P\P
1716Partial match: abababa
1717
1718/(..)\1{2,}/8i
1719    ab\P
1720Partial match: ab
1721    aBa\P
1722Partial match: aBa
1723    aBAb\P
1724Partial match: aBAb
1725    AbaBA\P
1726Partial match: AbaBA
1727    abABAb\P
1728 0: abABAb
1729 1: ab
1730    aBAbaB\P\P
1731Partial match: aBAbaB
1732    abABabA\P
1733 0: abABab
1734 1: ab
1735    abaBABa\P\P
1736Partial match: abaBABa
1737
1738/(..)\1{2,}?x/8i
1739    ab\P
1740Partial match: ab
1741    abA\P
1742Partial match: abA
1743    aBAb\P
1744Partial match: aBAb
1745    abaBA\P
1746Partial match: abaBA
1747    abAbaB\P
1748Partial match: abAbaB
1749    abaBabA\P
1750Partial match: abaBabA
1751    abAbABaBx\P
1752 0: abAbABaBx
1753 1: ab
1754
1755/./8<CRLF>
1756    \r\P
1757 0: \x{0d}
1758    \r\P\P
1759Partial match: \x{0d}
1760
1761/.{2,3}/8<CRLF>
1762    \r\P
1763Partial match: \x{0d}
1764    \r\P\P
1765Partial match: \x{0d}
1766    \r\r\P
1767 0: \x{0d}\x{0d}
1768    \r\r\P\P
1769Partial match: \x{0d}\x{0d}
1770    \r\r\r\P
1771 0: \x{0d}\x{0d}\x{0d}
1772    \r\r\r\P\P
1773Partial match: \x{0d}\x{0d}\x{0d}
1774
1775/.{2,3}?/8<CRLF>
1776    \r\P
1777Partial match: \x{0d}
1778    \r\P\P
1779Partial match: \x{0d}
1780    \r\r\P
1781 0: \x{0d}\x{0d}
1782    \r\r\P\P
1783Partial match: \x{0d}\x{0d}
1784    \r\r\r\P
1785 0: \x{0d}\x{0d}
1786    \r\r\r\P\P
1787 0: \x{0d}\x{0d}
1788
1789/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZ
1790------------------------------------------------------------------
1791        Bra
1792        [^\x{100}]
1793        [^\x{1234}]
1794        [^\x{ffff}]
1795        [^\x{10000}]
1796        [^\x{10ffff}]
1797        Ket
1798        End
1799------------------------------------------------------------------
1800
1801/[^\x{100}][^\x{1234}][^\x{ffff}][^\x{10000}][^\x{10ffff}]/8BZi
1802------------------------------------------------------------------
1803        Bra
1804     /i [^\x{100}]
1805     /i [^\x{1234}]
1806     /i [^\x{ffff}]
1807     /i [^\x{10000}]
1808     /i [^\x{10ffff}]
1809        Ket
1810        End
1811------------------------------------------------------------------
1812
1813/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZ
1814------------------------------------------------------------------
1815        Bra
1816        [^\x{100}]*
1817        [^\x{10000}]+
1818        [^\x{10ffff}]??
1819        [^\x{8000}]{4}
1820        [^\x{8000}]*
1821        [^\x{7fff}]{2}
1822        [^\x{7fff}]{0,7}?
1823        [^\x{fffff}]{5}
1824        [^\x{fffff}]?+
1825        Ket
1826        End
1827------------------------------------------------------------------
1828
1829/[^\x{100}]*[^\x{10000}]+[^\x{10ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{fffff}]{5,6}+/8BZi
1830------------------------------------------------------------------
1831        Bra
1832     /i [^\x{100}]*
1833     /i [^\x{10000}]+
1834     /i [^\x{10ffff}]??
1835     /i [^\x{8000}]{4}
1836     /i [^\x{8000}]*
1837     /i [^\x{7fff}]{2}
1838     /i [^\x{7fff}]{0,7}?
1839     /i [^\x{fffff}]{5}
1840     /i [^\x{fffff}]?+
1841        Ket
1842        End
1843------------------------------------------------------------------
1844
1845/(?<=\x{1234}\x{1234})\bxy/I8
1846Capturing subpattern count = 0
1847Max lookbehind = 2
1848Options: utf
1849First char = 'x'
1850Need char = 'y'
1851
1852/(?<!^)ETA/8
1853    ETA
1854No match
1855
1856/\u0100/<JS>8BZ
1857------------------------------------------------------------------
1858        Bra
1859        \x{100}
1860        Ket
1861        End
1862------------------------------------------------------------------
1863
1864/[\u0100-\u0200]/<JS>8BZ
1865------------------------------------------------------------------
1866        Bra
1867        [\x{100}-\x{200}]
1868        Ket
1869        End
1870------------------------------------------------------------------
1871
1872/\ud800/<JS>8
1873Failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 5
1874
1875/^a+[a\x{200}]/8BZ
1876------------------------------------------------------------------
1877        Bra
1878        ^
1879        a+
1880        [a\x{200}]
1881        Ket
1882        End
1883------------------------------------------------------------------
1884    aa
1885 0: aa
1886
1887/[b-d\x{200}-\x{250}]*[ae-h]?#[\x{200}-\x{250}]{0,8}[\x00-\xff]*#[\x{200}-\x{250}]+[a-z]/8BZ
1888------------------------------------------------------------------
1889        Bra
1890        [b-d\x{200}-\x{250}]*+
1891        [ae-h]?+
1892        #
1893        [\x{200}-\x{250}]{0,8}+
1894        [\x00-\xff]*
1895        #
1896        [\x{200}-\x{250}]++
1897        [a-z]
1898        Ket
1899        End
1900------------------------------------------------------------------
1901
1902/[^\xff]*PRUNE:\x{100}abc(xyz(?1))/8DZ
1903------------------------------------------------------------------
1904        Bra
1905        [^\x{ff}]*
1906        PRUNE:\x{100}abc
1907        CBra 1
1908        xyz
1909        Recurse
1910        Ket
1911        Ket
1912        End
1913------------------------------------------------------------------
1914Capturing subpattern count = 1
1915Options: utf
1916No first char
1917Need char = 'z'
1918
1919/(?<=\K\x{17f})/8g+
1920    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
1921 0: \x{17f}
1922 0+ \x{17f}\x{17f}\x{17f}\x{17f}
1923 0: \x{17f}
1924 0+ \x{17f}\x{17f}\x{17f}\x{17f}
1925 0: \x{17f}
1926 0+ \x{17f}\x{17f}\x{17f}
1927 0: \x{17f}
1928 0+ \x{17f}\x{17f}
1929 0: \x{17f}
1930 0+ \x{17f}
1931 0: \x{17f}
1932 0+
1933
1934/(?<=\K\x{17f})/8G+
1935    \x{17f}\x{17f}\x{17f}\x{17f}\x{17f}
1936 0: \x{17f}
1937 0+ \x{17f}\x{17f}\x{17f}\x{17f}
1938 0: \x{17f}
1939 0+ \x{17f}\x{17f}\x{17f}
1940 0: \x{17f}
1941 0+ \x{17f}\x{17f}
1942 0: \x{17f}
1943 0+ \x{17f}
1944 0: \x{17f}
1945 0+
1946
1947/-- End of testinput5 --/
1948