Annotation of embedaddon/php/ext/pcre/pcrelib/testdata/testoutput5, revision 1.1.1.1
1.1 misho 1: /-- This set of tests checks the API, internals, and non-Perl stuff for UTF-8
2: support, excluding Unicode properties. --/
3:
4: /\x{100}/8DZ
5: ------------------------------------------------------------------
6: Bra
7: \x{100}
8: Ket
9: End
10: ------------------------------------------------------------------
11: Capturing subpattern count = 0
12: Options: utf8
13: First char = 196
14: Need char = 128
15:
16: /\x{1000}/8DZ
17: ------------------------------------------------------------------
18: Bra
19: \x{1000}
20: Ket
21: End
22: ------------------------------------------------------------------
23: Capturing subpattern count = 0
24: Options: utf8
25: First char = 225
26: Need char = 128
27:
28: /\x{10000}/8DZ
29: ------------------------------------------------------------------
30: Bra
31: \x{10000}
32: Ket
33: End
34: ------------------------------------------------------------------
35: Capturing subpattern count = 0
36: Options: utf8
37: First char = 240
38: Need char = 128
39:
40: /\x{100000}/8DZ
41: ------------------------------------------------------------------
42: Bra
43: \x{100000}
44: Ket
45: End
46: ------------------------------------------------------------------
47: Capturing subpattern count = 0
48: Options: utf8
49: First char = 244
50: Need char = 128
51:
52: /\x{1000000}/8DZ
53: ------------------------------------------------------------------
54: Bra
55: \x{1000000}
56: Ket
57: End
58: ------------------------------------------------------------------
59: Capturing subpattern count = 0
60: Options: utf8
61: First char = 249
62: Need char = 128
63:
64: /\x{4000000}/8DZ
65: ------------------------------------------------------------------
66: Bra
67: \x{4000000}
68: Ket
69: End
70: ------------------------------------------------------------------
71: Capturing subpattern count = 0
72: Options: utf8
73: First char = 252
74: Need char = 128
75:
76: /\x{7fffFFFF}/8DZ
77: ------------------------------------------------------------------
78: Bra
79: \x{7fffffff}
80: Ket
81: End
82: ------------------------------------------------------------------
83: Capturing subpattern count = 0
84: Options: utf8
85: First char = 253
86: Need char = 191
87:
88: /[\x{ff}]/8DZ
89: ------------------------------------------------------------------
90: Bra
91: \x{ff}
92: Ket
93: End
94: ------------------------------------------------------------------
95: Capturing subpattern count = 0
96: Options: utf8
97: First char = 195
98: Need char = 191
99:
100: /[\x{100}]/8DZ
101: ------------------------------------------------------------------
102: Bra
103: [\x{100}]
104: Ket
105: End
106: ------------------------------------------------------------------
107: Capturing subpattern count = 0
108: Options: utf8
109: No first char
110: No need char
111:
112: /\x{ffffffff}/8
113: Failed: character value in \x{...} sequence is too large at offset 11
114:
115: /\x{100000000}/8
116: Failed: character value in \x{...} sequence is too large at offset 12
117:
118: /^\x{100}a\x{1234}/8
119: \x{100}a\x{1234}bcd
120: 0: \x{100}a\x{1234}
121:
122: /\x80/8DZ
123: ------------------------------------------------------------------
124: Bra
125: \x{80}
126: Ket
127: End
128: ------------------------------------------------------------------
129: Capturing subpattern count = 0
130: Options: utf8
131: First char = 194
132: Need char = 128
133:
134: /\xff/8DZ
135: ------------------------------------------------------------------
136: Bra
137: \x{ff}
138: Ket
139: End
140: ------------------------------------------------------------------
141: Capturing subpattern count = 0
142: Options: utf8
143: First char = 195
144: Need char = 191
145:
146: /\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
147: ------------------------------------------------------------------
148: Bra
149: A\x{2262}\x{391}.
150: Ket
151: End
152: ------------------------------------------------------------------
153: Capturing subpattern count = 0
154: Options: utf8
155: First char = 'A'
156: Need char = '.'
157: \x{0041}\x{2262}\x{0391}\x{002e}
158: 0: A\x{2262}\x{391}.
159:
160: /\x{D55c}\x{ad6d}\x{C5B4}/DZ8
161: ------------------------------------------------------------------
162: Bra
163: \x{d55c}\x{ad6d}\x{c5b4}
164: Ket
165: End
166: ------------------------------------------------------------------
167: Capturing subpattern count = 0
168: Options: utf8
169: First char = 237
170: Need char = 180
171: \x{D55c}\x{ad6d}\x{C5B4}
172: 0: \x{d55c}\x{ad6d}\x{c5b4}
173:
174: /\x{65e5}\x{672c}\x{8a9e}/DZ8
175: ------------------------------------------------------------------
176: Bra
177: \x{65e5}\x{672c}\x{8a9e}
178: Ket
179: End
180: ------------------------------------------------------------------
181: Capturing subpattern count = 0
182: Options: utf8
183: First char = 230
184: Need char = 158
185: \x{65e5}\x{672c}\x{8a9e}
186: 0: \x{65e5}\x{672c}\x{8a9e}
187:
188: /\x{80}/DZ8
189: ------------------------------------------------------------------
190: Bra
191: \x{80}
192: Ket
193: End
194: ------------------------------------------------------------------
195: Capturing subpattern count = 0
196: Options: utf8
197: First char = 194
198: Need char = 128
199:
200: /\x{084}/DZ8
201: ------------------------------------------------------------------
202: Bra
203: \x{84}
204: Ket
205: End
206: ------------------------------------------------------------------
207: Capturing subpattern count = 0
208: Options: utf8
209: First char = 194
210: Need char = 132
211:
212: /\x{104}/DZ8
213: ------------------------------------------------------------------
214: Bra
215: \x{104}
216: Ket
217: End
218: ------------------------------------------------------------------
219: Capturing subpattern count = 0
220: Options: utf8
221: First char = 196
222: Need char = 132
223:
224: /\x{861}/DZ8
225: ------------------------------------------------------------------
226: Bra
227: \x{861}
228: Ket
229: End
230: ------------------------------------------------------------------
231: Capturing subpattern count = 0
232: Options: utf8
233: First char = 224
234: Need char = 161
235:
236: /\x{212ab}/DZ8
237: ------------------------------------------------------------------
238: Bra
239: \x{212ab}
240: Ket
241: End
242: ------------------------------------------------------------------
243: Capturing subpattern count = 0
244: Options: utf8
245: First char = 240
246: Need char = 171
247:
248: /.{3,5}X/DZ8
249: ------------------------------------------------------------------
250: Bra
251: Any{3}
252: Any{0,2}
253: X
254: Ket
255: End
256: ------------------------------------------------------------------
257: Capturing subpattern count = 0
258: Options: utf8
259: No first char
260: Need char = 'X'
261: \x{212ab}\x{212ab}\x{212ab}\x{861}X
262: 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X
263:
264:
265: /.{3,5}?/DZ8
266: ------------------------------------------------------------------
267: Bra
268: Any{3}
269: Any{0,2}?
270: Ket
271: End
272: ------------------------------------------------------------------
273: Capturing subpattern count = 0
274: Options: utf8
275: No first char
276: No need char
277: \x{212ab}\x{212ab}\x{212ab}\x{861}
278: 0: \x{212ab}\x{212ab}\x{212ab}
279:
280: /(?<=\C)X/8
281: Failed: \C not allowed in lookbehind assertion at offset 6
282:
283: /-- This one is here not because it's different to Perl, but because the way
284: the captured single-byte is displayed. (In Perl it becomes a character, and you
285: can't tell the difference.) --/
286:
287: /X(\C)(.*)/8
288: X\x{1234}
289: 0: X\x{1234}
290: 1: \xe1
291: 2: \x88\xb4
292: X\nabc
293: 0: X\x{0a}abc
294: 1: \x{0a}
295: 2: abc
296:
297: /^[ab]/8DZ
298: ------------------------------------------------------------------
299: Bra
300: ^
301: [ab]
302: Ket
303: End
304: ------------------------------------------------------------------
305: Capturing subpattern count = 0
306: Options: anchored utf8
307: No first char
308: No need char
309: bar
310: 0: b
311: *** Failers
312: No match
313: c
314: No match
315: \x{ff}
316: No match
317: \x{100}
318: No match
319:
320: /^[^ab]/8DZ
321: ------------------------------------------------------------------
322: Bra
323: ^
324: [\x00-`c-\xff] (neg)
325: Ket
326: End
327: ------------------------------------------------------------------
328: Capturing subpattern count = 0
329: Options: anchored utf8
330: No first char
331: No need char
332: c
333: 0: c
334: \x{ff}
335: 0: \x{ff}
336: \x{100}
337: 0: \x{100}
338: *** Failers
339: 0: *
340: aaa
341: No match
342:
343: /[^ab\xC0-\xF0]/8SDZ
344: ------------------------------------------------------------------
345: Bra
346: [\x00-`c-\xbf\xf1-\xff] (neg)
347: Ket
348: End
349: ------------------------------------------------------------------
350: Capturing subpattern count = 0
351: Options: utf8
352: No first char
353: No need char
354: Subject length lower bound = 1
355: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
356: \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
357: \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4
358: 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y
359: Z [ \ ] ^ _ ` c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
360: \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0
361: \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf
362: \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee
363: \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd
364: \xfe \xff
365: \x{f1}
366: 0: \x{f1}
367: \x{bf}
368: 0: \x{bf}
369: \x{100}
370: 0: \x{100}
371: \x{1000}
372: 0: \x{1000}
373: *** Failers
374: 0: *
375: \x{c0}
376: No match
377: \x{f0}
378: No match
379:
380: /Ā{3,4}/8SDZ
381: ------------------------------------------------------------------
382: Bra
383: \x{100}{3}
384: \x{100}?
385: Ket
386: End
387: ------------------------------------------------------------------
388: Capturing subpattern count = 0
389: Options: utf8
390: First char = 196
391: Need char = 128
392: Subject length lower bound = 3
393: No set of starting bytes
394: \x{100}\x{100}\x{100}\x{100\x{100}
395: 0: \x{100}\x{100}\x{100}
396:
397: /(\x{100}+|x)/8SDZ
398: ------------------------------------------------------------------
399: Bra
400: CBra 1
401: \x{100}+
402: Alt
403: x
404: Ket
405: Ket
406: End
407: ------------------------------------------------------------------
408: Capturing subpattern count = 1
409: Options: utf8
410: No first char
411: No need char
412: Subject length lower bound = 1
413: Starting byte set: x \xc4
414:
415: /(\x{100}*a|x)/8SDZ
416: ------------------------------------------------------------------
417: Bra
418: CBra 1
419: \x{100}*+
420: a
421: Alt
422: x
423: Ket
424: Ket
425: End
426: ------------------------------------------------------------------
427: Capturing subpattern count = 1
428: Options: utf8
429: No first char
430: No need char
431: Subject length lower bound = 1
432: Starting byte set: a x \xc4
433:
434: /(\x{100}{0,2}a|x)/8SDZ
435: ------------------------------------------------------------------
436: Bra
437: CBra 1
438: \x{100}{0,2}
439: a
440: Alt
441: x
442: Ket
443: Ket
444: End
445: ------------------------------------------------------------------
446: Capturing subpattern count = 1
447: Options: utf8
448: No first char
449: No need char
450: Subject length lower bound = 1
451: Starting byte set: a x \xc4
452:
453: /(\x{100}{1,2}a|x)/8SDZ
454: ------------------------------------------------------------------
455: Bra
456: CBra 1
457: \x{100}
458: \x{100}{0,1}
459: a
460: Alt
461: x
462: Ket
463: Ket
464: End
465: ------------------------------------------------------------------
466: Capturing subpattern count = 1
467: Options: utf8
468: No first char
469: No need char
470: Subject length lower bound = 1
471: Starting byte set: x \xc4
472:
473: /\x{100}*(\d+|"(?1)")/8
474: 1234
475: 0: 1234
476: 1: 1234
477: "1234"
478: 0: "1234"
479: 1: "1234"
480: \x{100}1234
481: 0: \x{100}1234
482: 1: 1234
483: "\x{100}1234"
484: 0: \x{100}1234
485: 1: 1234
486: \x{100}\x{100}12ab
487: 0: \x{100}\x{100}12
488: 1: 12
489: \x{100}\x{100}"12"
490: 0: \x{100}\x{100}"12"
491: 1: "12"
492: *** Failers
493: No match
494: \x{100}\x{100}abcd
495: No match
496:
497: /\x{100}/8DZ
498: ------------------------------------------------------------------
499: Bra
500: \x{100}
501: Ket
502: End
503: ------------------------------------------------------------------
504: Capturing subpattern count = 0
505: Options: utf8
506: First char = 196
507: Need char = 128
508:
509: /\x{100}*/8DZ
510: ------------------------------------------------------------------
511: Bra
512: \x{100}*
513: Ket
514: End
515: ------------------------------------------------------------------
516: Capturing subpattern count = 0
517: Options: utf8
518: No first char
519: No need char
520:
521: /a\x{100}*/8DZ
522: ------------------------------------------------------------------
523: Bra
524: a
525: \x{100}*
526: Ket
527: End
528: ------------------------------------------------------------------
529: Capturing subpattern count = 0
530: Options: utf8
531: First char = 'a'
532: No need char
533:
534: /ab\x{100}*/8DZ
535: ------------------------------------------------------------------
536: Bra
537: ab
538: \x{100}*
539: Ket
540: End
541: ------------------------------------------------------------------
542: Capturing subpattern count = 0
543: Options: utf8
544: First char = 'a'
545: Need char = 'b'
546:
547: /a\x{100}\x{101}*/8DZ
548: ------------------------------------------------------------------
549: Bra
550: a\x{100}
551: \x{101}*
552: Ket
553: End
554: ------------------------------------------------------------------
555: Capturing subpattern count = 0
556: Options: utf8
557: First char = 'a'
558: Need char = 128
559:
560: /a\x{100}\x{101}+/8DZ
561: ------------------------------------------------------------------
562: Bra
563: a\x{100}
564: \x{101}+
565: Ket
566: End
567: ------------------------------------------------------------------
568: Capturing subpattern count = 0
569: Options: utf8
570: First char = 'a'
571: Need char = 129
572:
573: /\x{100}*A/8DZ
574: ------------------------------------------------------------------
575: Bra
576: \x{100}*+
577: A
578: Ket
579: End
580: ------------------------------------------------------------------
581: Capturing subpattern count = 0
582: Options: utf8
583: No first char
584: Need char = 'A'
585: A
586: 0: A
587:
588: /\x{100}*\d(?R)/8DZ
589: ------------------------------------------------------------------
590: Bra
591: \x{100}*+
592: \d
593: Once
594: Recurse
595: Ket
596: Ket
597: End
598: ------------------------------------------------------------------
599: Capturing subpattern count = 0
600: Options: utf8
601: No first char
602: No need char
603:
604: /[^\x{c4}]/DZ
605: ------------------------------------------------------------------
606: Bra
607: [^\xc4]
608: Ket
609: End
610: ------------------------------------------------------------------
611: Capturing subpattern count = 0
612: No options
613: No first char
614: No need char
615:
616: /[^\x{c4}]/8DZ
617: ------------------------------------------------------------------
618: Bra
619: [\x00-\xc3\xc5-\xff] (neg)
620: Ket
621: End
622: ------------------------------------------------------------------
623: Capturing subpattern count = 0
624: Options: utf8
625: No first char
626: No need char
627:
628: /[\x{100}]/8DZ
629: ------------------------------------------------------------------
630: Bra
631: [\x{100}]
632: Ket
633: End
634: ------------------------------------------------------------------
635: Capturing subpattern count = 0
636: Options: utf8
637: No first char
638: No need char
639: \x{100}
640: 0: \x{100}
641: Z\x{100}
642: 0: \x{100}
643: \x{100}Z
644: 0: \x{100}
645: *** Failers
646: No match
647:
648: /[Z\x{100}]/8DZ
649: ------------------------------------------------------------------
650: Bra
651: [Z\x{100}]
652: Ket
653: End
654: ------------------------------------------------------------------
655: Capturing subpattern count = 0
656: Options: utf8
657: No first char
658: No need char
659: Z\x{100}
660: 0: Z
661: \x{100}
662: 0: \x{100}
663: \x{100}Z
664: 0: \x{100}
665: *** Failers
666: No match
667:
668: /[\x{200}-\x{100}]/8
669: Failed: range out of order in character class at offset 15
670:
671: /[Ā-Ą]/8
672: \x{100}
673: 0: \x{100}
674: \x{104}
675: 0: \x{104}
676: *** Failers
677: No match
678: \x{105}
679: No match
680: \x{ff}
681: No match
682:
683: /[z-\x{100}]/8DZ
684: ------------------------------------------------------------------
685: Bra
686: [z-\x{100}]
687: Ket
688: End
689: ------------------------------------------------------------------
690: Capturing subpattern count = 0
691: Options: utf8
692: No first char
693: No need char
694:
695: /[z\Qa-d]Ā\E]/8DZ
696: ------------------------------------------------------------------
697: Bra
698: [\-\]adz\x{100}]
699: Ket
700: End
701: ------------------------------------------------------------------
702: Capturing subpattern count = 0
703: Options: utf8
704: No first char
705: No need char
706: \x{100}
707: 0: \x{100}
708: Ā
709: 0: \x{100}
710:
711: /[\xFF]/DZ
712: ------------------------------------------------------------------
713: Bra
714: \xff
715: Ket
716: End
717: ------------------------------------------------------------------
718: Capturing subpattern count = 0
719: No options
720: First char = 255
721: No need char
722: >\xff<
723: 0: \xff
724:
725: /[\xff]/DZ8
726: ------------------------------------------------------------------
727: Bra
728: \x{ff}
729: Ket
730: End
731: ------------------------------------------------------------------
732: Capturing subpattern count = 0
733: Options: utf8
734: First char = 195
735: Need char = 191
736: >\x{ff}<
737: 0: \x{ff}
738:
739: /[^\xFF]/DZ
740: ------------------------------------------------------------------
741: Bra
742: [^\xff]
743: Ket
744: End
745: ------------------------------------------------------------------
746: Capturing subpattern count = 0
747: No options
748: No first char
749: No need char
750:
751: /[^\xff]/8DZ
752: ------------------------------------------------------------------
753: Bra
754: [\x00-\xfe] (neg)
755: Ket
756: End
757: ------------------------------------------------------------------
758: Capturing subpattern count = 0
759: Options: utf8
760: No first char
761: No need char
762:
763: /[Ä-Ü]/8
764: Ö # Matches without Study
765: 0: \x{d6}
766: \x{d6}
767: 0: \x{d6}
768:
769: /[Ä-Ü]/8S
770: Ö <-- Same with Study
771: 0: \x{d6}
772: \x{d6}
773: 0: \x{d6}
774:
775: /[\x{c4}-\x{dc}]/8
776: Ö # Matches without Study
777: 0: \x{d6}
778: \x{d6}
779: 0: \x{d6}
780:
781: /[\x{c4}-\x{dc}]/8S
782: Ö <-- Same with Study
783: 0: \x{d6}
784: \x{d6}
785: 0: \x{d6}
786:
787: /[]/8
788: Failed: invalid UTF-8 string at offset 2
789:
790: //8
791: Failed: invalid UTF-8 string at offset 0
792:
793: /xxx/8
794: Failed: invalid UTF-8 string at offset 1
795:
796: /xxx/8?DZ
797: ------------------------------------------------------------------
798: Bra
799: \X{c0}\X{c0}\X{c0}xxx
800: Ket
801: End
802: ------------------------------------------------------------------
803: Capturing subpattern count = 0
804: Options: utf8 no_utf8_check
805: First char = 195
806: Need char = 'x'
807:
808: /abc/8
809: ]
810: Error -10
811:
812: Error -10
813:
814: Error -10
815: \?
816: No match
817:
818: /anything/8
819: \xc0\x80
820: Error -10
821: \xc1\x8f
822: Error -10
823: \xe0\x9f\x80
824: Error -10
825: \xf0\x8f\x80\x80
826: Error -10
827: \xf8\x87\x80\x80\x80
828: Error -10
829: \xfc\x83\x80\x80\x80\x80
830: Error -10
831: \xfe\x80\x80\x80\x80\x80
832: Error -10
833: \xff\x80\x80\x80\x80\x80
834: Error -10
835: \xc3\x8f
836: No match
837: \xe0\xaf\x80
838: No match
839: \xe1\x80\x80
840: No match
841: \xf0\x9f\x80\x80
842: No match
843: \xf1\x8f\x80\x80
844: No match
845: \xf8\x88\x80\x80\x80
846: Error -10
847: \xf9\x87\x80\x80\x80
848: Error -10
849: \xfc\x84\x80\x80\x80\x80
850: Error -10
851: \xfd\x83\x80\x80\x80\x80
852: Error -10
853: \?\xf8\x88\x80\x80\x80
854: No match
855: \?\xf9\x87\x80\x80\x80
856: No match
857: \?\xfc\x84\x80\x80\x80\x80
858: No match
859: \?\xfd\x83\x80\x80\x80\x80
860: No match
861:
862: /\x{100}abc(xyz(?1))/8DZ
863: ------------------------------------------------------------------
864: Bra
865: \x{100}abc
866: CBra 1
867: xyz
868: Once
869: Recurse
870: Ket
871: Ket
872: Ket
873: End
874: ------------------------------------------------------------------
875: Capturing subpattern count = 1
876: Options: utf8
877: First char = 196
878: Need char = 'z'
879:
880: /[^\x{100}]abc(xyz(?1))/8DZ
881: ------------------------------------------------------------------
882: Bra
883: [^\x{100}]
884: abc
885: CBra 1
886: xyz
887: Once
888: Recurse
889: Ket
890: Ket
891: Ket
892: End
893: ------------------------------------------------------------------
894: Capturing subpattern count = 1
895: Options: utf8
896: No first char
897: Need char = 'z'
898:
899: /[ab\x{100}]abc(xyz(?1))/8DZ
900: ------------------------------------------------------------------
901: Bra
902: [ab\x{100}]
903: abc
904: CBra 1
905: xyz
906: Once
907: Recurse
908: Ket
909: Ket
910: Ket
911: End
912: ------------------------------------------------------------------
913: Capturing subpattern count = 1
914: Options: utf8
915: No first char
916: Need char = 'z'
917:
918: /(\x{100}(b(?2)c))?/DZ8
919: ------------------------------------------------------------------
920: Bra
921: Brazero
922: CBra 1
923: \x{100}
924: CBra 2
925: b
926: Once
927: Recurse
928: Ket
929: c
930: Ket
931: Ket
932: Ket
933: End
934: ------------------------------------------------------------------
935: Capturing subpattern count = 2
936: Options: utf8
937: No first char
938: No need char
939:
940: /(\x{100}(b(?2)c)){0,2}/DZ8
941: ------------------------------------------------------------------
942: Bra
943: Brazero
944: Bra
945: CBra 1
946: \x{100}
947: CBra 2
948: b
949: Once
950: Recurse
951: Ket
952: c
953: Ket
954: Ket
955: Brazero
956: CBra 1
957: \x{100}
958: CBra 2
959: b
960: Once
961: Recurse
962: Ket
963: c
964: Ket
965: Ket
966: Ket
967: Ket
968: End
969: ------------------------------------------------------------------
970: Capturing subpattern count = 2
971: Options: utf8
972: No first char
973: No need char
974:
975: /(\x{100}(b(?1)c))?/DZ8
976: ------------------------------------------------------------------
977: Bra
978: Brazero
979: CBra 1
980: \x{100}
981: CBra 2
982: b
983: Once
984: Recurse
985: Ket
986: c
987: Ket
988: Ket
989: Ket
990: End
991: ------------------------------------------------------------------
992: Capturing subpattern count = 2
993: Options: utf8
994: No first char
995: No need char
996:
997: /(\x{100}(b(?1)c)){0,2}/DZ8
998: ------------------------------------------------------------------
999: Bra
1000: Brazero
1001: Bra
1002: CBra 1
1003: \x{100}
1004: CBra 2
1005: b
1006: Once
1007: Recurse
1008: Ket
1009: c
1010: Ket
1011: Ket
1012: Brazero
1013: CBra 1
1014: \x{100}
1015: CBra 2
1016: b
1017: Once
1018: Recurse
1019: Ket
1020: c
1021: Ket
1022: Ket
1023: Ket
1024: Ket
1025: End
1026: ------------------------------------------------------------------
1027: Capturing subpattern count = 2
1028: Options: utf8
1029: No first char
1030: No need char
1031:
1032: /\W/8
1033: A.B
1034: 0: .
1035: A\x{100}B
1036: 0: \x{100}
1037:
1038: /\w/8
1039: \x{100}X
1040: 0: X
1041:
1042: /a\x{1234}b/P8
1043: a\x{1234}b
1044: 0: a\x{1234}b
1045:
1046: /^\ሴ/8DZ
1047: ------------------------------------------------------------------
1048: Bra
1049: ^
1050: \x{1234}
1051: Ket
1052: End
1053: ------------------------------------------------------------------
1054: Capturing subpattern count = 0
1055: Options: anchored utf8
1056: No first char
1057: No need char
1058:
1059: /\777/I
1060: Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
1061:
1062: /\777/8I
1063: Capturing subpattern count = 0
1064: Options: utf8
1065: First char = 199
1066: Need char = 191
1067: \x{1ff}
1068: 0: \x{1ff}
1069: \777
1070: 0: \x{1ff}
1071:
1072: /\x{100}*\d/8DZ
1073: ------------------------------------------------------------------
1074: Bra
1075: \x{100}*+
1076: \d
1077: Ket
1078: End
1079: ------------------------------------------------------------------
1080: Capturing subpattern count = 0
1081: Options: utf8
1082: No first char
1083: No need char
1084:
1085: /\x{100}*\s/8DZ
1086: ------------------------------------------------------------------
1087: Bra
1088: \x{100}*+
1089: \s
1090: Ket
1091: End
1092: ------------------------------------------------------------------
1093: Capturing subpattern count = 0
1094: Options: utf8
1095: No first char
1096: No need char
1097:
1098: /\x{100}*\w/8DZ
1099: ------------------------------------------------------------------
1100: Bra
1101: \x{100}*+
1102: \w
1103: Ket
1104: End
1105: ------------------------------------------------------------------
1106: Capturing subpattern count = 0
1107: Options: utf8
1108: No first char
1109: No need char
1110:
1111: /\x{100}*\D/8DZ
1112: ------------------------------------------------------------------
1113: Bra
1114: \x{100}*
1115: \D
1116: Ket
1117: End
1118: ------------------------------------------------------------------
1119: Capturing subpattern count = 0
1120: Options: utf8
1121: No first char
1122: No need char
1123:
1124: /\x{100}*\S/8DZ
1125: ------------------------------------------------------------------
1126: Bra
1127: \x{100}*
1128: \S
1129: Ket
1130: End
1131: ------------------------------------------------------------------
1132: Capturing subpattern count = 0
1133: Options: utf8
1134: No first char
1135: No need char
1136:
1137: /\x{100}*\W/8DZ
1138: ------------------------------------------------------------------
1139: Bra
1140: \x{100}*
1141: \W
1142: Ket
1143: End
1144: ------------------------------------------------------------------
1145: Capturing subpattern count = 0
1146: Options: utf8
1147: No first char
1148: No need char
1149:
1150: /\x{100}+\x{200}/8DZ
1151: ------------------------------------------------------------------
1152: Bra
1153: \x{100}++
1154: \x{200}
1155: Ket
1156: End
1157: ------------------------------------------------------------------
1158: Capturing subpattern count = 0
1159: Options: utf8
1160: First char = 196
1161: Need char = 128
1162:
1163: /\x{100}+X/8DZ
1164: ------------------------------------------------------------------
1165: Bra
1166: \x{100}++
1167: X
1168: Ket
1169: End
1170: ------------------------------------------------------------------
1171: Capturing subpattern count = 0
1172: Options: utf8
1173: First char = 196
1174: Need char = 'X'
1175:
1176: /X+\x{200}/8DZ
1177: ------------------------------------------------------------------
1178: Bra
1179: X++
1180: \x{200}
1181: Ket
1182: End
1183: ------------------------------------------------------------------
1184: Capturing subpattern count = 0
1185: Options: utf8
1186: First char = 'X'
1187: Need char = 128
1188:
1189: /()()()()()()()()()()
1190: ()()()()()()()()()()
1191: ()()()()()()()()()()
1192: ()()()()()()()()()()
1193: A (x) (?41) B/8x
1194: AxxB
1195: Matched, but too many substrings
1196: 0: AxxB
1197: 1:
1198: 2:
1199: 3:
1200: 4:
1201: 5:
1202: 6:
1203: 7:
1204: 8:
1205: 9:
1206: 10:
1207: 11:
1208: 12:
1209: 13:
1210: 14:
1211:
1212: /^[\x{100}\E-\Q\E\x{150}]/BZ8
1213: ------------------------------------------------------------------
1214: Bra
1215: ^
1216: [\x{100}-\x{150}]
1217: Ket
1218: End
1219: ------------------------------------------------------------------
1220:
1221: /^[\QĀ\E-\QŐ\E]/BZ8
1222: ------------------------------------------------------------------
1223: Bra
1224: ^
1225: [\x{100}-\x{150}]
1226: Ket
1227: End
1228: ------------------------------------------------------------------
1229:
1230: /^[\QĀ\E-\QŐ\E/BZ8
1231: Failed: missing terminating ] for character class at offset 15
1232:
1233: /^abc./mgx8<any>
1234: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
1235: 0: abc1
1236: 0: abc2
1237: 0: abc3
1238: 0: abc4
1239: 0: abc5
1240: 0: abc6
1241: 0: abc7
1242: 0: abc8
1243: 0: abc9
1244:
1245: /abc.$/mgx8<any>
1246: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
1247: 0: abc1
1248: 0: abc2
1249: 0: abc3
1250: 0: abc4
1251: 0: abc5
1252: 0: abc6
1253: 0: abc7
1254: 0: abc8
1255: 0: abc9
1256:
1257: /^a\Rb/8<bsr_unicode>
1258: a\nb
1259: 0: a\x{0a}b
1260: a\rb
1261: 0: a\x{0d}b
1262: a\r\nb
1263: 0: a\x{0d}\x{0a}b
1264: a\x0bb
1265: 0: a\x{0b}b
1266: a\x0cb
1267: 0: a\x{0c}b
1268: a\x{85}b
1269: 0: a\x{85}b
1270: a\x{2028}b
1271: 0: a\x{2028}b
1272: a\x{2029}b
1273: 0: a\x{2029}b
1274: ** Failers
1275: No match
1276: a\n\rb
1277: No match
1278:
1279: /^a\R*b/8<bsr_unicode>
1280: ab
1281: 0: ab
1282: a\nb
1283: 0: a\x{0a}b
1284: a\rb
1285: 0: a\x{0d}b
1286: a\r\nb
1287: 0: a\x{0d}\x{0a}b
1288: a\x0bb
1289: 0: a\x{0b}b
1290: a\x0c\x{2028}\x{2029}b
1291: 0: a\x{0c}\x{2028}\x{2029}b
1292: a\x{85}b
1293: 0: a\x{85}b
1294: a\n\rb
1295: 0: a\x{0a}\x{0d}b
1296: a\n\r\x{85}\x0cb
1297: 0: a\x{0a}\x{0d}\x{85}\x{0c}b
1298:
1299: /^a\R+b/8<bsr_unicode>
1300: a\nb
1301: 0: a\x{0a}b
1302: a\rb
1303: 0: a\x{0d}b
1304: a\r\nb
1305: 0: a\x{0d}\x{0a}b
1306: a\x0bb
1307: 0: a\x{0b}b
1308: a\x0c\x{2028}\x{2029}b
1309: 0: a\x{0c}\x{2028}\x{2029}b
1310: a\x{85}b
1311: 0: a\x{85}b
1312: a\n\rb
1313: 0: a\x{0a}\x{0d}b
1314: a\n\r\x{85}\x0cb
1315: 0: a\x{0a}\x{0d}\x{85}\x{0c}b
1316: ** Failers
1317: No match
1318: ab
1319: No match
1320:
1321: /^a\R{1,3}b/8<bsr_unicode>
1322: a\nb
1323: 0: a\x{0a}b
1324: a\n\rb
1325: 0: a\x{0a}\x{0d}b
1326: a\n\r\x{85}b
1327: 0: a\x{0a}\x{0d}\x{85}b
1328: a\r\n\r\nb
1329: 0: a\x{0d}\x{0a}\x{0d}\x{0a}b
1330: a\r\n\r\n\r\nb
1331: 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
1332: a\n\r\n\rb
1333: 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
1334: a\n\n\r\nb
1335: 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
1336: ** Failers
1337: No match
1338: a\n\n\n\rb
1339: No match
1340: a\r
1341: No match
1342:
1343: /\H\h\V\v/8
1344: X X\x0a
1345: 0: X X\x{0a}
1346: X\x09X\x0b
1347: 0: X\x{09}X\x{0b}
1348: ** Failers
1349: No match
1350: \x{a0} X\x0a
1351: No match
1352:
1353: /\H*\h+\V?\v{3,4}/8
1354: \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
1355: 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
1356: \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
1357: 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
1358: \x09\x20\x{a0}\x0a\x0b\x0c
1359: 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
1360: ** Failers
1361: No match
1362: \x09\x20\x{a0}\x0a\x0b
1363: No match
1364:
1365: /\H\h\V\v/8
1366: \x{3001}\x{3000}\x{2030}\x{2028}
1367: 0: \x{3001}\x{3000}\x{2030}\x{2028}
1368: X\x{180e}X\x{85}
1369: 0: X\x{180e}X\x{85}
1370: ** Failers
1371: No match
1372: \x{2009} X\x0a
1373: No match
1374:
1375: /\H*\h+\V?\v{3,4}/8
1376: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
1377: 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
1378: \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
1379: 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
1380: \x09\x20\x{202f}\x0a\x0b\x0c
1381: 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
1382: ** Failers
1383: No match
1384: \x09\x{200a}\x{a0}\x{2028}\x0b
1385: No match
1386:
1387: /[\h]/8BZ
1388: ------------------------------------------------------------------
1389: Bra
1390: [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
1391: Ket
1392: End
1393: ------------------------------------------------------------------
1394: >\x{1680}
1395: 0: \x{1680}
1396:
1397: /[\h]{3,}/8BZ
1398: ------------------------------------------------------------------
1399: Bra
1400: [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]{3,}
1401: Ket
1402: End
1403: ------------------------------------------------------------------
1404: >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
1405: 0: \x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}
1406:
1407: /[\v]/8BZ
1408: ------------------------------------------------------------------
1409: Bra
1410: [\x0a-\x0d\x85\x{2028}-\x{2029}]
1411: Ket
1412: End
1413: ------------------------------------------------------------------
1414:
1415: /[\H]/8BZ
1416: ------------------------------------------------------------------
1417: Bra
1418: [\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{7fffffff}]
1419: Ket
1420: End
1421: ------------------------------------------------------------------
1422:
1423: /[\V]/8BZ
1424: ------------------------------------------------------------------
1425: Bra
1426: [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{2029}-\x{7fffffff}]
1427: Ket
1428: End
1429: ------------------------------------------------------------------
1430:
1431: /.*$/8<any>
1432: \x{1ec5}
1433: 0: \x{1ec5}
1434:
1435: /-- This tests the stricter UTF-8 check according to RFC 3629. --/
1436:
1437: /X/8
1438: \x{0}\x{d7ff}\x{e000}\x{10ffff}
1439: No match
1440: \x{d800}
1441: Error -10
1442: \x{d800}\?
1443: No match
1444: \x{da00}
1445: Error -10
1446: \x{da00}\?
1447: No match
1448: \x{dfff}
1449: Error -10
1450: \x{dfff}\?
1451: No match
1452: \x{110000}
1453: Error -10
1454: \x{110000}\?
1455: No match
1456: \x{2000000}
1457: Error -10
1458: \x{2000000}\?
1459: No match
1460: \x{7fffffff}
1461: Error -10
1462: \x{7fffffff}\?
1463: No match
1464:
1465: /a\Rb/I8<bsr_anycrlf>
1466: Capturing subpattern count = 0
1467: Options: bsr_anycrlf utf8
1468: First char = 'a'
1469: Need char = 'b'
1470: a\rb
1471: 0: a\x{0d}b
1472: a\nb
1473: 0: a\x{0a}b
1474: a\r\nb
1475: 0: a\x{0d}\x{0a}b
1476: ** Failers
1477: No match
1478: a\x{85}b
1479: No match
1480: a\x0bb
1481: No match
1482:
1483: /a\Rb/I8<bsr_unicode>
1484: Capturing subpattern count = 0
1485: Options: bsr_unicode utf8
1486: First char = 'a'
1487: Need char = 'b'
1488: a\rb
1489: 0: a\x{0d}b
1490: a\nb
1491: 0: a\x{0a}b
1492: a\r\nb
1493: 0: a\x{0d}\x{0a}b
1494: a\x{85}b
1495: 0: a\x{85}b
1496: a\x0bb
1497: 0: a\x{0b}b
1498: ** Failers
1499: No match
1500: a\x{85}b\<bsr_anycrlf>
1501: No match
1502: a\x0bb\<bsr_anycrlf>
1503: No match
1504:
1505: /a\R?b/I8<bsr_anycrlf>
1506: Capturing subpattern count = 0
1507: Options: bsr_anycrlf utf8
1508: First char = 'a'
1509: Need char = 'b'
1510: a\rb
1511: 0: a\x{0d}b
1512: a\nb
1513: 0: a\x{0a}b
1514: a\r\nb
1515: 0: a\x{0d}\x{0a}b
1516: ** Failers
1517: No match
1518: a\x{85}b
1519: No match
1520: a\x0bb
1521: No match
1522:
1523: /a\R?b/I8<bsr_unicode>
1524: Capturing subpattern count = 0
1525: Options: bsr_unicode utf8
1526: First char = 'a'
1527: Need char = 'b'
1528: a\rb
1529: 0: a\x{0d}b
1530: a\nb
1531: 0: a\x{0a}b
1532: a\r\nb
1533: 0: a\x{0d}\x{0a}b
1534: a\x{85}b
1535: 0: a\x{85}b
1536: a\x0bb
1537: 0: a\x{0b}b
1538: ** Failers
1539: No match
1540: a\x{85}b\<bsr_anycrlf>
1541: No match
1542: a\x0bb\<bsr_anycrlf>
1543: No match
1544:
1545: /.*a.*=.b.*/8<ANY>
1546: QQQ\x{2029}ABCaXYZ=!bPQR
1547: 0: ABCaXYZ=!bPQR
1548: ** Failers
1549: No match
1550: a\x{2029}b
1551: No match
1552: \x61\xe2\x80\xa9\x62
1553: No match
1554:
1555: /[[:a\x{100}b:]]/8
1556: Failed: unknown POSIX class name at offset 3
1557:
1558: /a[^]b/<JS>8
1559: a\x{1234}b
1560: 0: a\x{1234}b
1561: a\nb
1562: 0: a\x{0a}b
1563: ** Failers
1564: No match
1565: ab
1566: No match
1567:
1568: /a[^]+b/<JS>8
1569: aXb
1570: 0: aXb
1571: a\nX\nX\x{1234}b
1572: 0: a\x{0a}X\x{0a}X\x{1234}b
1573: ** Failers
1574: No match
1575: ab
1576: No match
1577:
1578: /(\x{de})\1/
1579: \x{de}\x{de}
1580: 0: \xde\xde
1581: 1: \xde
1582: \x{123}
1583: ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
1584: ** Truncation will probably give the wrong result.
1585: No match
1586:
1587: /X/8f<any>
1588: A\x{1ec5}ABCXYZ
1589: 0: X
1590:
1591: /(*UTF8)\x{1234}/
1592: abcd\x{1234}pqr
1593: 0: \x{1234}
1594:
1595: /(*CRLF)(*UTF8)(*BSR_UNICODE)a\Rb/I
1596: Capturing subpattern count = 0
1597: Options: bsr_unicode utf8
1598: Forced newline sequence: CRLF
1599: First char = 'a'
1600: Need char = 'b'
1601:
1602: /Xa{2,4}b/8
1603: X\P
1604: Partial match: X
1605: Xa\P
1606: Partial match: Xa
1607: Xaa\P
1608: Partial match: Xaa
1609: Xaaa\P
1610: Partial match: Xaaa
1611: Xaaaa\P
1612: Partial match: Xaaaa
1613:
1614: /Xa{2,4}?b/8
1615: X\P
1616: Partial match: X
1617: Xa\P
1618: Partial match: Xa
1619: Xaa\P
1620: Partial match: Xaa
1621: Xaaa\P
1622: Partial match: Xaaa
1623: Xaaaa\P
1624: Partial match: Xaaaa
1625:
1626: /Xa{2,4}+b/8
1627: X\P
1628: Partial match: X
1629: Xa\P
1630: Partial match: Xa
1631: Xaa\P
1632: Partial match: Xaa
1633: Xaaa\P
1634: Partial match: Xaaa
1635: Xaaaa\P
1636: Partial match: Xaaaa
1637:
1638: /X\x{123}{2,4}b/8
1639: X\P
1640: Partial match: X
1641: X\x{123}\P
1642: Partial match: X\x{123}
1643: X\x{123}\x{123}\P
1644: Partial match: X\x{123}\x{123}
1645: X\x{123}\x{123}\x{123}\P
1646: Partial match: X\x{123}\x{123}\x{123}
1647: X\x{123}\x{123}\x{123}\x{123}\P
1648: Partial match: X\x{123}\x{123}\x{123}\x{123}
1649:
1650: /X\x{123}{2,4}?b/8
1651: X\P
1652: Partial match: X
1653: X\x{123}\P
1654: Partial match: X\x{123}
1655: X\x{123}\x{123}\P
1656: Partial match: X\x{123}\x{123}
1657: X\x{123}\x{123}\x{123}\P
1658: Partial match: X\x{123}\x{123}\x{123}
1659: X\x{123}\x{123}\x{123}\x{123}\P
1660: Partial match: X\x{123}\x{123}\x{123}\x{123}
1661:
1662: /X\x{123}{2,4}+b/8
1663: X\P
1664: Partial match: X
1665: X\x{123}\P
1666: Partial match: X\x{123}
1667: X\x{123}\x{123}\P
1668: Partial match: X\x{123}\x{123}
1669: X\x{123}\x{123}\x{123}\P
1670: Partial match: X\x{123}\x{123}\x{123}
1671: X\x{123}\x{123}\x{123}\x{123}\P
1672: Partial match: X\x{123}\x{123}\x{123}\x{123}
1673:
1674: /X\x{123}{2,4}b/8
1675: Xx\P
1676: No match
1677: X\x{123}x\P
1678: No match
1679: X\x{123}\x{123}x\P
1680: No match
1681: X\x{123}\x{123}\x{123}x\P
1682: No match
1683: X\x{123}\x{123}\x{123}\x{123}x\P
1684: No match
1685:
1686: /X\x{123}{2,4}?b/8
1687: Xx\P
1688: No match
1689: X\x{123}x\P
1690: No match
1691: X\x{123}\x{123}x\P
1692: No match
1693: X\x{123}\x{123}\x{123}x\P
1694: No match
1695: X\x{123}\x{123}\x{123}\x{123}x\P
1696: No match
1697:
1698: /X\x{123}{2,4}+b/8
1699: Xx\P
1700: No match
1701: X\x{123}x\P
1702: No match
1703: X\x{123}\x{123}x\P
1704: No match
1705: X\x{123}\x{123}\x{123}x\P
1706: No match
1707: X\x{123}\x{123}\x{123}\x{123}x\P
1708: No match
1709:
1710: /X\d{2,4}b/8
1711: X\P
1712: Partial match: X
1713: X3\P
1714: Partial match: X3
1715: X33\P
1716: Partial match: X33
1717: X333\P
1718: Partial match: X333
1719: X3333\P
1720: Partial match: X3333
1721:
1722: /X\d{2,4}?b/8
1723: X\P
1724: Partial match: X
1725: X3\P
1726: Partial match: X3
1727: X33\P
1728: Partial match: X33
1729: X333\P
1730: Partial match: X333
1731: X3333\P
1732: Partial match: X3333
1733:
1734: /X\d{2,4}+b/8
1735: X\P
1736: Partial match: X
1737: X3\P
1738: Partial match: X3
1739: X33\P
1740: Partial match: X33
1741: X333\P
1742: Partial match: X333
1743: X3333\P
1744: Partial match: X3333
1745:
1746: /X\D{2,4}b/8
1747: X\P
1748: Partial match: X
1749: Xa\P
1750: Partial match: Xa
1751: Xaa\P
1752: Partial match: Xaa
1753: Xaaa\P
1754: Partial match: Xaaa
1755: Xaaaa\P
1756: Partial match: Xaaaa
1757:
1758: /X\D{2,4}?b/8
1759: X\P
1760: Partial match: X
1761: Xa\P
1762: Partial match: Xa
1763: Xaa\P
1764: Partial match: Xaa
1765: Xaaa\P
1766: Partial match: Xaaa
1767: Xaaaa\P
1768: Partial match: Xaaaa
1769:
1770: /X\D{2,4}+b/8
1771: X\P
1772: Partial match: X
1773: Xa\P
1774: Partial match: Xa
1775: Xaa\P
1776: Partial match: Xaa
1777: Xaaa\P
1778: Partial match: Xaaa
1779: Xaaaa\P
1780: Partial match: Xaaaa
1781:
1782: /X\D{2,4}b/8
1783: X\P
1784: Partial match: X
1785: X\x{123}\P
1786: Partial match: X\x{123}
1787: X\x{123}\x{123}\P
1788: Partial match: X\x{123}\x{123}
1789: X\x{123}\x{123}\x{123}\P
1790: Partial match: X\x{123}\x{123}\x{123}
1791: X\x{123}\x{123}\x{123}\x{123}\P
1792: Partial match: X\x{123}\x{123}\x{123}\x{123}
1793:
1794: /X\D{2,4}?b/8
1795: X\P
1796: Partial match: X
1797: X\x{123}\P
1798: Partial match: X\x{123}
1799: X\x{123}\x{123}\P
1800: Partial match: X\x{123}\x{123}
1801: X\x{123}\x{123}\x{123}\P
1802: Partial match: X\x{123}\x{123}\x{123}
1803: X\x{123}\x{123}\x{123}\x{123}\P
1804: Partial match: X\x{123}\x{123}\x{123}\x{123}
1805:
1806: /X\D{2,4}+b/8
1807: X\P
1808: Partial match: X
1809: X\x{123}\P
1810: Partial match: X\x{123}
1811: X\x{123}\x{123}\P
1812: Partial match: X\x{123}\x{123}
1813: X\x{123}\x{123}\x{123}\P
1814: Partial match: X\x{123}\x{123}\x{123}
1815: X\x{123}\x{123}\x{123}\x{123}\P
1816: Partial match: X\x{123}\x{123}\x{123}\x{123}
1817:
1818: /X[abc]{2,4}b/8
1819: X\P
1820: Partial match: X
1821: Xa\P
1822: Partial match: Xa
1823: Xaa\P
1824: Partial match: Xaa
1825: Xaaa\P
1826: Partial match: Xaaa
1827: Xaaaa\P
1828: Partial match: Xaaaa
1829:
1830: /X[abc]{2,4}?b/8
1831: X\P
1832: Partial match: X
1833: Xa\P
1834: Partial match: Xa
1835: Xaa\P
1836: Partial match: Xaa
1837: Xaaa\P
1838: Partial match: Xaaa
1839: Xaaaa\P
1840: Partial match: Xaaaa
1841:
1842: /X[abc]{2,4}+b/8
1843: X\P
1844: Partial match: X
1845: Xa\P
1846: Partial match: Xa
1847: Xaa\P
1848: Partial match: Xaa
1849: Xaaa\P
1850: Partial match: Xaaa
1851: Xaaaa\P
1852: Partial match: Xaaaa
1853:
1854: /X[abc\x{123}]{2,4}b/8
1855: X\P
1856: Partial match: X
1857: X\x{123}\P
1858: Partial match: X\x{123}
1859: X\x{123}\x{123}\P
1860: Partial match: X\x{123}\x{123}
1861: X\x{123}\x{123}\x{123}\P
1862: Partial match: X\x{123}\x{123}\x{123}
1863: X\x{123}\x{123}\x{123}\x{123}\P
1864: Partial match: X\x{123}\x{123}\x{123}\x{123}
1865:
1866: /X[abc\x{123}]{2,4}?b/8
1867: X\P
1868: Partial match: X
1869: X\x{123}\P
1870: Partial match: X\x{123}
1871: X\x{123}\x{123}\P
1872: Partial match: X\x{123}\x{123}
1873: X\x{123}\x{123}\x{123}\P
1874: Partial match: X\x{123}\x{123}\x{123}
1875: X\x{123}\x{123}\x{123}\x{123}\P
1876: Partial match: X\x{123}\x{123}\x{123}\x{123}
1877:
1878: /X[abc\x{123}]{2,4}+b/8
1879: X\P
1880: Partial match: X
1881: X\x{123}\P
1882: Partial match: X\x{123}
1883: X\x{123}\x{123}\P
1884: Partial match: X\x{123}\x{123}
1885: X\x{123}\x{123}\x{123}\P
1886: Partial match: X\x{123}\x{123}\x{123}
1887: X\x{123}\x{123}\x{123}\x{123}\P
1888: Partial match: X\x{123}\x{123}\x{123}\x{123}
1889:
1890: /X[^a]{2,4}b/8
1891: X\P
1892: Partial match: X
1893: Xz\P
1894: Partial match: Xz
1895: Xzz\P
1896: Partial match: Xzz
1897: Xzzz\P
1898: Partial match: Xzzz
1899: Xzzzz\P
1900: Partial match: Xzzzz
1901:
1902: /X[^a]{2,4}?b/8
1903: X\P
1904: Partial match: X
1905: Xz\P
1906: Partial match: Xz
1907: Xzz\P
1908: Partial match: Xzz
1909: Xzzz\P
1910: Partial match: Xzzz
1911: Xzzzz\P
1912: Partial match: Xzzzz
1913:
1914: /X[^a]{2,4}+b/8
1915: X\P
1916: Partial match: X
1917: Xz\P
1918: Partial match: Xz
1919: Xzz\P
1920: Partial match: Xzz
1921: Xzzz\P
1922: Partial match: Xzzz
1923: Xzzzz\P
1924: Partial match: Xzzzz
1925:
1926: /X[^a]{2,4}b/8
1927: X\P
1928: Partial match: X
1929: X\x{123}\P
1930: Partial match: X\x{123}
1931: X\x{123}\x{123}\P
1932: Partial match: X\x{123}\x{123}
1933: X\x{123}\x{123}\x{123}\P
1934: Partial match: X\x{123}\x{123}\x{123}
1935: X\x{123}\x{123}\x{123}\x{123}\P
1936: Partial match: X\x{123}\x{123}\x{123}\x{123}
1937:
1938: /X[^a]{2,4}?b/8
1939: X\P
1940: Partial match: X
1941: X\x{123}\P
1942: Partial match: X\x{123}
1943: X\x{123}\x{123}\P
1944: Partial match: X\x{123}\x{123}
1945: X\x{123}\x{123}\x{123}\P
1946: Partial match: X\x{123}\x{123}\x{123}
1947: X\x{123}\x{123}\x{123}\x{123}\P
1948: Partial match: X\x{123}\x{123}\x{123}\x{123}
1949:
1950: /X[^a]{2,4}+b/8
1951: X\P
1952: Partial match: X
1953: X\x{123}\P
1954: Partial match: X\x{123}
1955: X\x{123}\x{123}\P
1956: Partial match: X\x{123}\x{123}
1957: X\x{123}\x{123}\x{123}\P
1958: Partial match: X\x{123}\x{123}\x{123}
1959: X\x{123}\x{123}\x{123}\x{123}\P
1960: Partial match: X\x{123}\x{123}\x{123}\x{123}
1961:
1962: /(Y)X\1{2,4}b/8
1963: YX\P
1964: Partial match: YX
1965: YXY\P
1966: Partial match: YXY
1967: YXYY\P
1968: Partial match: YXYY
1969: YXYYY\P
1970: Partial match: YXYYY
1971: YXYYYY\P
1972: Partial match: YXYYYY
1973:
1974: /(Y)X\1{2,4}?b/8
1975: YX\P
1976: Partial match: YX
1977: YXY\P
1978: Partial match: YXY
1979: YXYY\P
1980: Partial match: YXYY
1981: YXYYY\P
1982: Partial match: YXYYY
1983: YXYYYY\P
1984: Partial match: YXYYYY
1985:
1986: /(Y)X\1{2,4}+b/8
1987: YX\P
1988: Partial match: YX
1989: YXY\P
1990: Partial match: YXY
1991: YXYY\P
1992: Partial match: YXYY
1993: YXYYY\P
1994: Partial match: YXYYY
1995: YXYYYY\P
1996: Partial match: YXYYYY
1997:
1998: /(\x{123})X\1{2,4}b/8
1999: \x{123}X\P
2000: Partial match: \x{123}X
2001: \x{123}X\x{123}\P
2002: Partial match: \x{123}X\x{123}
2003: \x{123}X\x{123}\x{123}\P
2004: Partial match: \x{123}X\x{123}\x{123}
2005: \x{123}X\x{123}\x{123}\x{123}\P
2006: Partial match: \x{123}X\x{123}\x{123}\x{123}
2007: \x{123}X\x{123}\x{123}\x{123}\x{123}\P
2008: Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
2009:
2010: /(\x{123})X\1{2,4}?b/8
2011: \x{123}X\P
2012: Partial match: \x{123}X
2013: \x{123}X\x{123}\P
2014: Partial match: \x{123}X\x{123}
2015: \x{123}X\x{123}\x{123}\P
2016: Partial match: \x{123}X\x{123}\x{123}
2017: \x{123}X\x{123}\x{123}\x{123}\P
2018: Partial match: \x{123}X\x{123}\x{123}\x{123}
2019: \x{123}X\x{123}\x{123}\x{123}\x{123}\P
2020: Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
2021:
2022: /(\x{123})X\1{2,4}+b/8
2023: \x{123}X\P
2024: Partial match: \x{123}X
2025: \x{123}X\x{123}\P
2026: Partial match: \x{123}X\x{123}
2027: \x{123}X\x{123}\x{123}\P
2028: Partial match: \x{123}X\x{123}\x{123}
2029: \x{123}X\x{123}\x{123}\x{123}\P
2030: Partial match: \x{123}X\x{123}\x{123}\x{123}
2031: \x{123}X\x{123}\x{123}\x{123}\x{123}\P
2032: Partial match: \x{123}X\x{123}\x{123}\x{123}\x{123}
2033:
2034: /\bthe cat\b/8
2035: the cat\P
2036: 0: the cat
2037: the cat\P\P
2038: Partial match: the cat
2039:
2040: /abcd*/8
2041: xxxxabcd\P
2042: 0: abcd
2043: xxxxabcd\P\P
2044: Partial match: abcd
2045:
2046: /abcd*/i8
2047: xxxxabcd\P
2048: 0: abcd
2049: xxxxabcd\P\P
2050: Partial match: abcd
2051: XXXXABCD\P
2052: 0: ABCD
2053: XXXXABCD\P\P
2054: Partial match: ABCD
2055:
2056: /abc\d*/8
2057: xxxxabc1\P
2058: 0: abc1
2059: xxxxabc1\P\P
2060: Partial match: abc1
2061:
2062: /(a)bc\1*/8
2063: xxxxabca\P
2064: 0: abca
2065: 1: a
2066: xxxxabca\P\P
2067: Partial match: abca
2068:
2069: /abc[de]*/8
2070: xxxxabcde\P
2071: 0: abcde
2072: xxxxabcde\P\P
2073: Partial match: abcde
2074:
2075: /X\W{3}X/8
2076: \PX
2077: Partial match: X
2078:
2079: /\h/SI
2080: Capturing subpattern count = 0
2081: No options
2082: No first char
2083: No need char
2084: Subject length lower bound = 1
2085: Starting byte set: \x09 \x20 \xa0
2086:
2087: /\h/SI8
2088: Capturing subpattern count = 0
2089: Options: utf8
2090: No first char
2091: No need char
2092: Subject length lower bound = 1
2093: Starting byte set: \x09 \x20 \xc2 \xe1 \xe2 \xe3
2094: ABC\x{09}
2095: 0: \x{09}
2096: ABC\x{20}
2097: 0:
2098: ABC\x{a0}
2099: 0: \x{a0}
2100: ABC\x{1680}
2101: 0: \x{1680}
2102: ABC\x{180e}
2103: 0: \x{180e}
2104: ABC\x{2000}
2105: 0: \x{2000}
2106: ABC\x{202f}
2107: 0: \x{202f}
2108: ABC\x{205f}
2109: 0: \x{205f}
2110: ABC\x{3000}
2111: 0: \x{3000}
2112:
2113: /\v/SI
2114: Capturing subpattern count = 0
2115: No options
2116: No first char
2117: No need char
2118: Subject length lower bound = 1
2119: Starting byte set: \x0a \x0b \x0c \x0d \x85
2120:
2121: /\v/SI8
2122: Capturing subpattern count = 0
2123: Options: utf8
2124: No first char
2125: No need char
2126: Subject length lower bound = 1
2127: Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
2128: ABC\x{0a}
2129: 0: \x{0a}
2130: ABC\x{0b}
2131: 0: \x{0b}
2132: ABC\x{0c}
2133: 0: \x{0c}
2134: ABC\x{0d}
2135: 0: \x{0d}
2136: ABC\x{85}
2137: 0: \x{85}
2138: ABC\x{2028}
2139: 0: \x{2028}
2140:
2141: /\R/SI
2142: Capturing subpattern count = 0
2143: No options
2144: No first char
2145: No need char
2146: Subject length lower bound = 2
2147: Starting byte set: \x0a \x0b \x0c \x0d \x85
2148:
2149: /\R/SI8
2150: Capturing subpattern count = 0
2151: Options: utf8
2152: No first char
2153: No need char
2154: Subject length lower bound = 2
2155: Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
2156:
2157: /\h*A/SI8
2158: Capturing subpattern count = 0
2159: Options: utf8
2160: No first char
2161: Need char = 'A'
2162: Subject length lower bound = 1
2163: Starting byte set: \x09 \x20 A \xc2 \xe1 \xe2 \xe3
2164: CDBABC
2165: 0: A
2166:
2167: /\v+A/SI8
2168: Capturing subpattern count = 0
2169: Options: utf8
2170: No first char
2171: Need char = 'A'
2172: Subject length lower bound = 2
2173: Starting byte set: \x0a \x0b \x0c \x0d \xc2 \xe2
2174:
2175: /\s?xxx\s/8SI
2176: Capturing subpattern count = 0
2177: Options: utf8
2178: No first char
2179: Need char = 'x'
2180: Subject length lower bound = 4
2181: Starting byte set: \x09 \x0a \x0c \x0d \x20 x
2182:
2183: /\sxxx\s/8T1
2184: AB\x{85}xxx\x{a0}XYZ
2185: 0: \x{85}xxx\x{a0}
2186: AB\x{a0}xxx\x{85}XYZ
2187: 0: \x{a0}xxx\x{85}
2188:
2189: /\sxxx\s/I8ST1
2190: Capturing subpattern count = 0
2191: Options: utf8
2192: No first char
2193: Need char = 'x'
2194: Subject length lower bound = 5
2195: Starting byte set: \x09 \x0a \x0c \x0d \x20 \xc2
2196: AB\x{85}xxx\x{a0}XYZ
2197: 0: \x{85}xxx\x{a0}
2198: AB\x{a0}xxx\x{85}XYZ
2199: 0: \x{a0}xxx\x{85}
2200:
2201: /\S \S/8T1
2202: \x{a2} \x{84}
2203: 0: \x{a2} \x{84}
2204:
2205: /\S \S/I8ST1
2206: Capturing subpattern count = 0
2207: Options: utf8
2208: No first char
2209: Need char = ' '
2210: Subject length lower bound = 3
2211: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0b \x0e
2212: \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
2213: \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
2214: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e
2215: f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xc0 \xc1 \xc2 \xc3
2216: \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2
2217: \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1
2218: \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0
2219: \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff
2220: \x{a2} \x{84}
2221: 0: \x{a2} \x{84}
2222: A Z
2223: 0: A Z
2224:
2225: /-- End of testinput5 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>