Annotation of embedaddon/pcre/testdata/testoutput8, revision 1.1.1.5
1.1.1.5 ! misho 1: /-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
! 2: excluding UTF and Unicode property support. The -dfa flag must be used with
! 3: pcretest when running it. --/
! 4:
! 5: < forbid 8W
1.1.1.2 misho 6:
7: /abc/
8: abc
9: 0: abc
10:
11: /ab*c/
12: abc
13: 0: abc
14: abbbbc
15: 0: abbbbc
16: ac
17: 0: ac
18:
19: /ab+c/
20: abc
21: 0: abc
22: abbbbbbc
23: 0: abbbbbbc
1.1 misho 24: *** Failers
25: No match
1.1.1.2 misho 26: ac
27: No match
1.1 misho 28: ab
29: No match
1.1.1.2 misho 30:
1.1.1.5 ! misho 31: /a*/O
1.1.1.2 misho 32: a
33: 0: a
34: 1:
35: aaaaaaaaaaaaaaaaa
36: 0: aaaaaaaaaaaaaaaaa
37: 1: aaaaaaaaaaaaaaaa
38: 2: aaaaaaaaaaaaaaa
39: 3: aaaaaaaaaaaaaa
40: 4: aaaaaaaaaaaaa
41: 5: aaaaaaaaaaaa
42: 6: aaaaaaaaaaa
43: 7: aaaaaaaaaa
44: 8: aaaaaaaaa
45: 9: aaaaaaaa
46: 10: aaaaaaa
47: 11: aaaaaa
48: 12: aaaaa
49: 13: aaaa
50: 14: aaa
51: 15: aa
52: 16: a
53: 17:
54: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1.1.1.4 misho 55: Matched, but offsets vector is too small to show all matches
1.1.1.2 misho 56: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
57: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
58: 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
59: 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
60: 4: aaaaaaaaaaaaaaaaaaaaaaaaaa
61: 5: aaaaaaaaaaaaaaaaaaaaaaaaa
62: 6: aaaaaaaaaaaaaaaaaaaaaaaa
63: 7: aaaaaaaaaaaaaaaaaaaaaaa
64: 8: aaaaaaaaaaaaaaaaaaaaaa
65: 9: aaaaaaaaaaaaaaaaaaaaa
66: 10: aaaaaaaaaaaaaaaaaaaa
67: 11: aaaaaaaaaaaaaaaaaaa
68: 12: aaaaaaaaaaaaaaaaaa
69: 13: aaaaaaaaaaaaaaaaa
70: 14: aaaaaaaaaaaaaaaa
71: 15: aaaaaaaaaaaaaaa
72: 16: aaaaaaaaaaaaaa
73: 17: aaaaaaaaaaaaa
74: 18: aaaaaaaaaaaa
75: 19: aaaaaaaaaaa
76: 20: aaaaaaaaaa
77: 21: aaaaaaaaa
78: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
79: 0:
80:
81: /(a|abcd|african)/
82: a
83: 0: a
84: abcd
85: 0: abcd
86: 1: a
87: african
88: 0: african
89: 1: a
90:
91: /^abc/
92: abcdef
93: 0: abc
94: *** Failers
95: No match
96: xyzabc
1.1 misho 97: No match
1.1.1.2 misho 98: xyz\nabc
1.1 misho 99: No match
100:
1.1.1.2 misho 101: /^abc/m
102: abcdef
103: 0: abc
104: xyz\nabc
105: 0: abc
1.1 misho 106: *** Failers
107: No match
1.1.1.2 misho 108: xyzabc
1.1 misho 109: No match
1.1.1.2 misho 110:
111: /\Aabc/
112: abcdef
113: 0: abc
114: *** Failers
1.1 misho 115: No match
1.1.1.2 misho 116: xyzabc
1.1 misho 117: No match
1.1.1.2 misho 118: xyz\nabc
119: No match
120:
121: /\Aabc/m
122: abcdef
123: 0: abc
124: *** Failers
125: No match
126: xyzabc
1.1 misho 127: No match
1.1.1.2 misho 128: xyz\nabc
1.1 misho 129: No match
130:
1.1.1.2 misho 131: /\Gabc/
132: abcdef
133: 0: abc
134: xyzabc\>3
135: 0: abc
1.1 misho 136: *** Failers
137: No match
1.1.1.2 misho 138: xyzabc
139: No match
140: xyzabc\>2
141: No match
142:
143: /x\dy\Dz/
144: x9yzz
145: 0: x9yzz
146: x0y+z
147: 0: x0y+z
148: *** Failers
1.1 misho 149: No match
1.1.1.2 misho 150: xyz
1.1 misho 151: No match
1.1.1.2 misho 152: xxy0z
1.1 misho 153: No match
154:
1.1.1.2 misho 155: /x\sy\Sz/
156: x yzz
157: 0: x yzz
158: x y+z
159: 0: x y+z
1.1 misho 160: *** Failers
161: No match
1.1.1.2 misho 162: xyz
1.1 misho 163: No match
1.1.1.2 misho 164: xxyyz
1.1 misho 165: No match
1.1.1.2 misho 166:
167: /x\wy\Wz/
168: xxy+z
169: 0: xxy+z
170: *** Failers
1.1 misho 171: No match
1.1.1.2 misho 172: xxy0z
1.1 misho 173: No match
1.1.1.2 misho 174: x+y+z
1.1 misho 175: No match
1.1.1.2 misho 176:
177: /x.y/
178: x+y
179: 0: x+y
180: x-y
181: 0: x-y
1.1 misho 182: *** Failers
183: No match
1.1.1.2 misho 184: x\ny
185: No match
186:
187: /x.y/s
188: x+y
189: 0: x+y
190: x-y
191: 0: x-y
192: x\ny
193: 0: x\x0ay
194:
195: /(a.b(?s)c.d|x.y)p.q/
196: a+bc+dp+q
197: 0: a+bc+dp+q
198: a+bc\ndp+q
199: 0: a+bc\x0adp+q
200: x\nyp+q
201: 0: x\x0ayp+q
202: *** Failers
203: No match
204: a\nbc\ndp+q
205: No match
206: a+bc\ndp\nq
207: No match
208: x\nyp\nq
1.1 misho 209: No match
210:
1.1.1.2 misho 211: /a\d\z/
212: ba0
213: 0: a0
1.1 misho 214: *** Failers
215: No match
1.1.1.2 misho 216: ba0\n
1.1 misho 217: No match
1.1.1.2 misho 218: ba0\ncd
1.1 misho 219: No match
220:
1.1.1.2 misho 221: /a\d\z/m
222: ba0
223: 0: a0
1.1 misho 224: *** Failers
225: No match
1.1.1.2 misho 226: ba0\n
1.1 misho 227: No match
1.1.1.2 misho 228: ba0\ncd
1.1 misho 229: No match
230:
1.1.1.2 misho 231: /a\d\Z/
232: ba0
233: 0: a0
234: ba0\n
235: 0: a0
1.1 misho 236: *** Failers
237: No match
1.1.1.2 misho 238: ba0\ncd
1.1 misho 239: No match
240:
1.1.1.2 misho 241: /a\d\Z/m
242: ba0
243: 0: a0
244: ba0\n
245: 0: a0
1.1 misho 246: *** Failers
247: No match
1.1.1.2 misho 248: ba0\ncd
1.1 misho 249: No match
250:
1.1.1.2 misho 251: /a\d$/
252: ba0
253: 0: a0
254: ba0\n
255: 0: a0
1.1 misho 256: *** Failers
257: No match
1.1.1.2 misho 258: ba0\ncd
1.1 misho 259: No match
1.1.1.2 misho 260:
261: /a\d$/m
262: ba0
263: 0: a0
264: ba0\n
265: 0: a0
266: ba0\ncd
267: 0: a0
268: *** Failers
1.1 misho 269: No match
270:
1.1.1.2 misho 271: /abc/i
272: abc
273: 0: abc
274: aBc
275: 0: aBc
276: ABC
277: 0: ABC
278:
279: /[^a]/
280: abcd
281: 0: b
282:
283: /ab?\w/
284: abz
285: 0: abz
286: 1: ab
287: abbz
288: 0: abb
289: 1: ab
290: azz
291: 0: az
292:
293: /x{0,3}yz/
294: ayzq
295: 0: yz
296: axyzq
297: 0: xyz
298: axxyz
299: 0: xxyz
300: axxxyzq
301: 0: xxxyz
302: axxxxyzq
303: 0: xxxyz
1.1 misho 304: *** Failers
305: No match
1.1.1.2 misho 306: ax
1.1 misho 307: No match
1.1.1.2 misho 308: axx
1.1 misho 309: No match
1.1.1.2 misho 310:
311: /x{3}yz/
312: axxxyzq
313: 0: xxxyz
314: axxxxyzq
315: 0: xxxyz
1.1 misho 316: *** Failers
317: No match
1.1.1.2 misho 318: ax
1.1 misho 319: No match
1.1.1.2 misho 320: axx
1.1 misho 321: No match
1.1.1.2 misho 322: ayzq
1.1 misho 323: No match
1.1.1.2 misho 324: axyzq
1.1 misho 325: No match
1.1.1.2 misho 326: axxyz
1.1 misho 327: No match
1.1.1.2 misho 328:
329: /x{2,3}yz/
330: axxyz
331: 0: xxyz
332: axxxyzq
333: 0: xxxyz
334: axxxxyzq
335: 0: xxxyz
1.1 misho 336: *** Failers
337: No match
1.1.1.2 misho 338: ax
339: No match
340: axx
341: No match
342: ayzq
343: No match
344: axyzq
345: No match
346:
1.1.1.5 ! misho 347: /[^a]+/O
1.1.1.2 misho 348: bac
349: 0: b
350: bcdefax
351: 0: bcdef
352: 1: bcde
353: 2: bcd
354: 3: bc
355: 4: b
356: *** Failers
357: 0: *** F
358: 1: ***
359: 2: ***
360: 3: **
361: 4: *
362: aaaaa
1.1 misho 363: No match
364:
1.1.1.5 ! misho 365: /[^a]*/O
1.1.1.2 misho 366: bac
367: 0: b
1.1 misho 368: 1:
1.1.1.2 misho 369: bcdefax
370: 0: bcdef
371: 1: bcde
372: 2: bcd
373: 3: bc
374: 4: b
375: 5:
376: *** Failers
377: 0: *** F
378: 1: ***
379: 2: ***
380: 3: **
381: 4: *
382: 5:
383: aaaaa
1.1 misho 384: 0:
1.1.1.2 misho 385:
1.1.1.5 ! misho 386: /[^a]{3,5}/O
1.1.1.2 misho 387: xyz
388: 0: xyz
389: awxyza
390: 0: wxyz
391: 1: wxy
392: abcdefa
393: 0: bcdef
394: 1: bcde
395: 2: bcd
396: abcdefghijk
397: 0: bcdef
398: 1: bcde
399: 2: bcd
400: *** Failers
401: 0: *** F
402: 1: ***
403: 2: ***
404: axya
405: No match
406: axa
407: No match
408: aaaaa
409: No match
410:
411: /\d*/
412: 1234b567
413: 0: 1234
414: xyz
415: 0:
1.1 misho 416:
1.1.1.2 misho 417: /\D*/
418: a1234b567
419: 0: a
420: xyz
421: 0: xyz
422:
423: /\d+/
424: ab1234c56
425: 0: 1234
426: *** Failers
427: No match
428: xyz
429: No match
1.1 misho 430:
1.1.1.2 misho 431: /\D+/
432: ab123c56
433: 0: ab
1.1 misho 434: *** Failers
435: 0: *** Failers
1.1.1.2 misho 436: 789
1.1 misho 437: No match
1.1.1.2 misho 438:
439: /\d?A/
440: 045ABC
441: 0: 5A
442: ABC
443: 0: A
444: *** Failers
1.1 misho 445: No match
1.1.1.2 misho 446: XYZ
1.1 misho 447: No match
1.1.1.2 misho 448:
449: /\D?A/
450: ABC
451: 0: A
452: BAC
453: 0: BA
454: 9ABC
455: 0: A
456: *** Failers
1.1 misho 457: No match
458:
1.1.1.2 misho 459: /a+/
460: aaaa
461: 0: aaaa
462:
463: /^.*xyz/
464: xyz
465: 0: xyz
466: ggggggggxyz
467: 0: ggggggggxyz
468:
469: /^.+xyz/
470: abcdxyz
471: 0: abcdxyz
472: axyz
473: 0: axyz
1.1 misho 474: *** Failers
475: No match
1.1.1.2 misho 476: xyz
1.1 misho 477: No match
1.1.1.2 misho 478:
479: /^.?xyz/
480: xyz
481: 0: xyz
482: cxyz
483: 0: cxyz
484:
485: /^\d{2,3}X/
486: 12X
487: 0: 12X
488: 123X
489: 0: 123X
490: *** Failers
1.1 misho 491: No match
1.1.1.2 misho 492: X
1.1 misho 493: No match
1.1.1.2 misho 494: 1X
495: No match
496: 1234X
1.1 misho 497: No match
498:
1.1.1.2 misho 499: /^[abcd]\d/
500: a45
501: 0: a4
502: b93
503: 0: b9
504: c99z
505: 0: c9
506: d04
507: 0: d0
1.1 misho 508: *** Failers
1.1.1.2 misho 509: No match
510: e45
511: No match
512: abcd
513: No match
514: abcd1234
515: No match
516: 1234
1.1 misho 517: No match
518:
1.1.1.2 misho 519: /^[abcd]*\d/
520: a45
521: 0: a4
522: b93
523: 0: b9
524: c99z
525: 0: c9
526: d04
527: 0: d0
528: abcd1234
529: 0: abcd1
530: 1234
531: 0: 1
1.1 misho 532: *** Failers
1.1.1.2 misho 533: No match
534: e45
535: No match
536: abcd
1.1 misho 537: No match
538:
1.1.1.2 misho 539: /^[abcd]+\d/
540: a45
541: 0: a4
542: b93
543: 0: b9
544: c99z
545: 0: c9
546: d04
547: 0: d0
548: abcd1234
549: 0: abcd1
1.1 misho 550: *** Failers
551: No match
1.1.1.2 misho 552: 1234
553: No match
554: e45
555: No match
556: abcd
557: No match
1.1 misho 558:
1.1.1.2 misho 559: /^a+X/
560: aX
561: 0: aX
562: aaX
563: 0: aaX
564:
565: /^[abcd]?\d/
566: a45
567: 0: a4
568: b93
569: 0: b9
570: c99z
571: 0: c9
572: d04
573: 0: d0
574: 1234
575: 0: 1
1.1 misho 576: *** Failers
577: No match
1.1.1.2 misho 578: abcd1234
579: No match
580: e45
1.1 misho 581: No match
582:
1.1.1.2 misho 583: /^[abcd]{2,3}\d/
584: ab45
585: 0: ab4
586: bcd93
587: 0: bcd9
1.1 misho 588: *** Failers
589: No match
1.1.1.2 misho 590: 1234
591: No match
592: a36
593: No match
594: abcd1234
595: No match
596: ee45
1.1 misho 597: No match
598:
1.1.1.2 misho 599: /^(abc)*\d/
600: abc45
601: 0: abc4
602: abcabcabc45
603: 0: abcabcabc4
604: 42xyz
605: 0: 4
1.1 misho 606: *** Failers
607: No match
608:
1.1.1.2 misho 609: /^(abc)+\d/
610: abc45
611: 0: abc4
612: abcabcabc45
613: 0: abcabcabc4
1.1 misho 614: *** Failers
1.1.1.2 misho 615: No match
616: 42xyz
1.1 misho 617: No match
618:
1.1.1.2 misho 619: /^(abc)?\d/
620: abc45
621: 0: abc4
622: 42xyz
623: 0: 4
1.1 misho 624: *** Failers
625: No match
1.1.1.2 misho 626: abcabcabc45
1.1 misho 627: No match
628:
1.1.1.2 misho 629: /^(abc){2,3}\d/
630: abcabc45
631: 0: abcabc4
632: abcabcabc45
633: 0: abcabcabc4
634: *** Failers
635: No match
636: abcabcabcabc45
637: No match
638: abc45
639: No match
640: 42xyz
1.1 misho 641: No match
642:
1.1.1.2 misho 643: /1(abc|xyz)2(?1)3/
644: 1abc2abc3456
645: 0: 1abc2abc3
646: 1abc2xyz3456
647: 0: 1abc2xyz3
648:
649: /^(a*\w|ab)=(a*\w|ab)/
650: ab=ab
651: 0: ab=ab
652: 1: ab=a
653:
654: /^(a*\w|ab)=(?1)/
655: ab=ab
656: 0: ab=ab
657: 1: ab=a
658:
659: /^([^()]|\((?1)*\))*$/
660: abc
661: 0: abc
662: a(b)c
663: 0: a(b)c
664: a(b(c))d
665: 0: a(b(c))d
666: *** Failers)
667: No match
668: a(b(c)d
669: No match
670:
671: /^>abc>([^()]|\((?1)*\))*<xyz<$/
672: >abc>123<xyz<
673: 0: >abc>123<xyz<
674: >abc>1(2)3<xyz<
675: 0: >abc>1(2)3<xyz<
676: >abc>(1(2)3)<xyz<
677: 0: >abc>(1(2)3)<xyz<
678:
679: /^(?>a*)\d/
680: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
681: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
682: *** Failers
1.1 misho 683: No match
1.1.1.2 misho 684: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1.1 misho 685: No match
686:
1.1.1.2 misho 687: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
688: <>
689: 0: <>
690: <abcd>
691: 0: <abcd>
692: <abc <123> hij>
693: 0: <abc <123> hij>
694: <abc <def> hij>
695: 0: <def>
696: <abc<>def>
697: 0: <abc<>def>
698: <abc<>
699: 0: <>
1.1 misho 700: *** Failers
701: No match
1.1.1.2 misho 702: <abc
1.1 misho 703: No match
704:
1.1.1.2 misho 705: /^(?(?=abc)\w{3}:|\d\d)$/
706: abc:
707: 0: abc:
708: 12
709: 0: 12
710: *** Failers
1.1 misho 711: No match
1.1.1.2 misho 712: 123
1.1 misho 713: No match
1.1.1.2 misho 714: xyz
1.1 misho 715: No match
1.1.1.2 misho 716:
717: /^(?(?!abc)\d\d|\w{3}:)$/
718: abc:
719: 0: abc:
720: 12
721: 0: 12
1.1 misho 722: *** Failers
723: No match
1.1.1.2 misho 724: 123
1.1 misho 725: No match
1.1.1.2 misho 726: xyz
1.1 misho 727: No match
728:
1.1.1.2 misho 729: /^(?=abc)\w{5}:$/
730: abcde:
731: 0: abcde:
732: *** Failers
1.1 misho 733: No match
1.1.1.2 misho 734: abc..
1.1 misho 735: No match
1.1.1.2 misho 736: 123
1.1 misho 737: No match
1.1.1.2 misho 738: vwxyz
1.1 misho 739: No match
1.1.1.2 misho 740:
741: /^(?!abc)\d\d$/
742: 12
743: 0: 12
1.1 misho 744: *** Failers
745: No match
1.1.1.2 misho 746: abcde:
747: No match
748: abc..
1.1 misho 749: No match
1.1.1.2 misho 750: 123
1.1 misho 751: No match
1.1.1.2 misho 752: vwxyz
1.1 misho 753: No match
754:
1.1.1.2 misho 755: /(?<=abc|xy)123/
756: abc12345
757: 0: 123
758: wxy123z
759: 0: 123
1.1 misho 760: *** Failers
761: No match
1.1.1.2 misho 762: 123abc
1.1 misho 763: No match
764:
1.1.1.2 misho 765: /(?<!abc|xy)123/
766: 123abc
767: 0: 123
768: mno123456
769: 0: 123
770: *** Failers
771: No match
772: abc12345
773: No match
774: wxy123z
775: No match
776:
777: /abc(?C1)xyz/
778: abcxyz
779: --->abcxyz
780: 1 ^ ^ x
781: 0: abcxyz
782: 123abcxyz999
783: --->123abcxyz999
784: 1 ^ ^ x
785: 0: abcxyz
786:
787: /(ab|cd){3,4}/C
788: ababab
789: --->ababab
790: +0 ^ (ab|cd){3,4}
791: +1 ^ a
792: +4 ^ c
793: +2 ^^ b
794: +3 ^ ^ |
795: +1 ^ ^ a
796: +4 ^ ^ c
797: +2 ^ ^ b
798: +3 ^ ^ |
799: +1 ^ ^ a
800: +4 ^ ^ c
801: +2 ^ ^ b
802: +3 ^ ^ |
803: +12 ^ ^
804: +1 ^ ^ a
805: +4 ^ ^ c
806: 0: ababab
807: abcdabcd
808: --->abcdabcd
809: +0 ^ (ab|cd){3,4}
810: +1 ^ a
811: +4 ^ c
812: +2 ^^ b
813: +3 ^ ^ |
814: +1 ^ ^ a
815: +4 ^ ^ c
816: +5 ^ ^ d
817: +6 ^ ^ )
818: +1 ^ ^ a
819: +4 ^ ^ c
820: +2 ^ ^ b
821: +3 ^ ^ |
822: +12 ^ ^
823: +1 ^ ^ a
824: +4 ^ ^ c
825: +5 ^ ^ d
826: +6 ^ ^ )
827: +12 ^ ^
828: 0: abcdabcd
829: 1: abcdab
830: abcdcdcdcdcd
831: --->abcdcdcdcdcd
832: +0 ^ (ab|cd){3,4}
833: +1 ^ a
834: +4 ^ c
835: +2 ^^ b
836: +3 ^ ^ |
837: +1 ^ ^ a
838: +4 ^ ^ c
839: +5 ^ ^ d
840: +6 ^ ^ )
841: +1 ^ ^ a
842: +4 ^ ^ c
843: +5 ^ ^ d
844: +6 ^ ^ )
845: +12 ^ ^
846: +1 ^ ^ a
847: +4 ^ ^ c
848: +5 ^ ^ d
849: +6 ^ ^ )
850: +12 ^ ^
851: 0: abcdcdcd
852: 1: abcdcd
853:
854: /^abc/
855: abcdef
856: 0: abc
857: *** Failers
858: No match
859: abcdef\B
860: No match
861:
862: /^(a*|xyz)/
863: bcd
864: 0:
865: aaabcd
866: 0: aaa
867: xyz
868: 0: xyz
869: 1:
870: xyz\N
871: 0: xyz
872: *** Failers
873: 0:
874: bcd\N
875: No match
876:
877: /xyz$/
878: xyz
879: 0: xyz
880: xyz\n
881: 0: xyz
882: *** Failers
883: No match
884: xyz\Z
885: No match
886: xyz\n\Z
887: No match
888:
889: /xyz$/m
890: xyz
891: 0: xyz
892: xyz\n
893: 0: xyz
894: abcxyz\npqr
895: 0: xyz
896: abcxyz\npqr\Z
897: 0: xyz
898: xyz\n\Z
899: 0: xyz
900: *** Failers
901: No match
902: xyz\Z
903: No match
904:
905: /\Gabc/
906: abcdef
907: 0: abc
908: defabcxyz\>3
909: 0: abc
910: *** Failers
911: No match
912: defabcxyz
913: No match
914:
915: /^abcdef/
916: ab\P
917: Partial match: ab
918: abcde\P
919: Partial match: abcde
920: abcdef\P
921: 0: abcdef
922: *** Failers
923: No match
924: abx\P
925: No match
926:
927: /^a{2,4}\d+z/
928: a\P
929: Partial match: a
930: aa\P
931: Partial match: aa
932: aa2\P
933: Partial match: aa2
934: aaa\P
935: Partial match: aaa
936: aaa23\P
937: Partial match: aaa23
938: aaaa12345\P
939: Partial match: aaaa12345
940: aa0z\P
941: 0: aa0z
942: aaaa4444444444444z\P
943: 0: aaaa4444444444444z
944: *** Failers
945: No match
946: az\P
947: No match
948: aaaaa\P
949: No match
950: a56\P
951: No match
952:
953: /^abcdef/
954: abc\P
955: Partial match: abc
956: def\R
957: 0: def
958:
959: /(?<=foo)bar/
960: xyzfo\P
961: No match
962: foob\P\>2
1.1.1.4 misho 963: Partial match at offset 3: foob
1.1.1.2 misho 964: foobar...\R\P\>4
965: 0: ar
966: xyzfo\P
967: No match
968: foobar\>2
969: 0: bar
970: *** Failers
971: No match
972: xyzfo\P
973: No match
974: obar\R
975: No match
976:
977: /(ab*(cd|ef))+X/
978: adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
979: No match
980: lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
981: Partial match: abbbbbbcdaefabbbbbbbefa
982: cdabbbbbbbb\P\R\B\Z
983: Partial match: cdabbbbbbbb
984: efabbbbbbbbbbbbbbbb\P\R\B\Z
985: Partial match: efabbbbbbbbbbbbbbbb
986: bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z
987: 0: bbbbbbbbbbbbcdX
988:
989: /(a|b)/SF>testsavedregex
990: Compiled pattern written to testsavedregex
991: Study data written to testsavedregex
992: <testsavedregex
993: Compiled pattern (byte-inverted) loaded from testsavedregex
994: Study data loaded from testsavedregex
995: abc
996: 0: a
997: ** Failers
998: 0: a
999: def
1000: No match
1001:
1002: /the quick brown fox/
1003: the quick brown fox
1004: 0: the quick brown fox
1005: The quick brown FOX
1006: No match
1007: What do you know about the quick brown fox?
1008: 0: the quick brown fox
1009: What do you know about THE QUICK BROWN FOX?
1010: No match
1011:
1012: /The quick brown fox/i
1013: the quick brown fox
1014: 0: the quick brown fox
1015: The quick brown FOX
1016: 0: The quick brown FOX
1017: What do you know about the quick brown fox?
1018: 0: the quick brown fox
1019: What do you know about THE QUICK BROWN FOX?
1020: 0: THE QUICK BROWN FOX
1021:
1022: /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
1023: abcd\t\n\r\f\a\e9;\$\\?caxyz
1024: 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
1025:
1026: /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
1027: abxyzpqrrrabbxyyyypqAzz
1028: 0: abxyzpqrrrabbxyyyypqAzz
1029: abxyzpqrrrabbxyyyypqAzz
1030: 0: abxyzpqrrrabbxyyyypqAzz
1031: aabxyzpqrrrabbxyyyypqAzz
1032: 0: aabxyzpqrrrabbxyyyypqAzz
1033: aaabxyzpqrrrabbxyyyypqAzz
1034: 0: aaabxyzpqrrrabbxyyyypqAzz
1035: aaaabxyzpqrrrabbxyyyypqAzz
1036: 0: aaaabxyzpqrrrabbxyyyypqAzz
1037: abcxyzpqrrrabbxyyyypqAzz
1038: 0: abcxyzpqrrrabbxyyyypqAzz
1039: aabcxyzpqrrrabbxyyyypqAzz
1040: 0: aabcxyzpqrrrabbxyyyypqAzz
1041: aaabcxyzpqrrrabbxyyyypAzz
1042: 0: aaabcxyzpqrrrabbxyyyypAzz
1043: aaabcxyzpqrrrabbxyyyypqAzz
1044: 0: aaabcxyzpqrrrabbxyyyypqAzz
1045: aaabcxyzpqrrrabbxyyyypqqAzz
1046: 0: aaabcxyzpqrrrabbxyyyypqqAzz
1047: aaabcxyzpqrrrabbxyyyypqqqAzz
1048: 0: aaabcxyzpqrrrabbxyyyypqqqAzz
1049: aaabcxyzpqrrrabbxyyyypqqqqAzz
1050: 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
1051: aaabcxyzpqrrrabbxyyyypqqqqqAzz
1052: 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
1053: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
1054: 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
1055: aaaabcxyzpqrrrabbxyyyypqAzz
1056: 0: aaaabcxyzpqrrrabbxyyyypqAzz
1057: abxyzzpqrrrabbxyyyypqAzz
1058: 0: abxyzzpqrrrabbxyyyypqAzz
1059: aabxyzzzpqrrrabbxyyyypqAzz
1060: 0: aabxyzzzpqrrrabbxyyyypqAzz
1061: aaabxyzzzzpqrrrabbxyyyypqAzz
1062: 0: aaabxyzzzzpqrrrabbxyyyypqAzz
1063: aaaabxyzzzzpqrrrabbxyyyypqAzz
1064: 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
1065: abcxyzzpqrrrabbxyyyypqAzz
1066: 0: abcxyzzpqrrrabbxyyyypqAzz
1067: aabcxyzzzpqrrrabbxyyyypqAzz
1068: 0: aabcxyzzzpqrrrabbxyyyypqAzz
1069: aaabcxyzzzzpqrrrabbxyyyypqAzz
1070: 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
1071: aaaabcxyzzzzpqrrrabbxyyyypqAzz
1072: 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
1073: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
1074: 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
1075: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
1076: 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
1077: aaabcxyzpqrrrabbxyyyypABzz
1078: 0: aaabcxyzpqrrrabbxyyyypABzz
1079: aaabcxyzpqrrrabbxyyyypABBzz
1080: 0: aaabcxyzpqrrrabbxyyyypABBzz
1081: >>>aaabxyzpqrrrabbxyyyypqAzz
1082: 0: aaabxyzpqrrrabbxyyyypqAzz
1083: >aaaabxyzpqrrrabbxyyyypqAzz
1084: 0: aaaabxyzpqrrrabbxyyyypqAzz
1085: >>>>abcxyzpqrrrabbxyyyypqAzz
1086: 0: abcxyzpqrrrabbxyyyypqAzz
1087: *** Failers
1088: No match
1089: abxyzpqrrabbxyyyypqAzz
1090: No match
1091: abxyzpqrrrrabbxyyyypqAzz
1092: No match
1093: abxyzpqrrrabxyyyypqAzz
1094: No match
1095: aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
1096: No match
1097: aaaabcxyzzzzpqrrrabbbxyyypqAzz
1098: No match
1099: aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
1100: No match
1101:
1102: /^(abc){1,2}zz/
1103: abczz
1104: 0: abczz
1105: abcabczz
1106: 0: abcabczz
1107: *** Failers
1108: No match
1109: zz
1110: No match
1111: abcabcabczz
1112: No match
1113: >>abczz
1114: No match
1115:
1116: /^(b+?|a){1,2}?c/
1117: bc
1118: 0: bc
1119: bbc
1120: 0: bbc
1121: bbbc
1122: 0: bbbc
1123: bac
1124: 0: bac
1125: bbac
1126: 0: bbac
1127: aac
1128: 0: aac
1129: abbbbbbbbbbbc
1130: 0: abbbbbbbbbbbc
1131: bbbbbbbbbbbac
1132: 0: bbbbbbbbbbbac
1133: *** Failers
1134: No match
1135: aaac
1136: No match
1137: abbbbbbbbbbbac
1138: No match
1139:
1140: /^(b+|a){1,2}c/
1141: bc
1142: 0: bc
1143: bbc
1144: 0: bbc
1145: bbbc
1146: 0: bbbc
1147: bac
1148: 0: bac
1149: bbac
1150: 0: bbac
1151: aac
1152: 0: aac
1153: abbbbbbbbbbbc
1154: 0: abbbbbbbbbbbc
1155: bbbbbbbbbbbac
1156: 0: bbbbbbbbbbbac
1157: *** Failers
1158: No match
1159: aaac
1160: No match
1161: abbbbbbbbbbbac
1162: No match
1163:
1164: /^(b+|a){1,2}?bc/
1165: bbc
1166: 0: bbc
1167:
1168: /^(b*|ba){1,2}?bc/
1169: babc
1170: 0: babc
1171: bbabc
1172: 0: bbabc
1173: bababc
1174: 0: bababc
1175: *** Failers
1176: No match
1177: bababbc
1178: No match
1179: babababc
1180: No match
1181:
1182: /^(ba|b*){1,2}?bc/
1183: babc
1184: 0: babc
1185: bbabc
1186: 0: bbabc
1187: bababc
1188: 0: bababc
1189: *** Failers
1190: No match
1191: bababbc
1192: No match
1193: babababc
1194: No match
1195:
1196: /^\ca\cA\c[\c{\c:/
1197: \x01\x01\e;z
1198: 0: \x01\x01\x1b;z
1199:
1200: /^[ab\]cde]/
1201: athing
1202: 0: a
1203: bthing
1204: 0: b
1205: ]thing
1206: 0: ]
1207: cthing
1208: 0: c
1209: dthing
1210: 0: d
1211: ething
1212: 0: e
1213: *** Failers
1214: No match
1215: fthing
1216: No match
1217: [thing
1218: No match
1219: \\thing
1220: No match
1221:
1222: /^[]cde]/
1223: ]thing
1224: 0: ]
1225: cthing
1226: 0: c
1227: dthing
1228: 0: d
1229: ething
1230: 0: e
1231: *** Failers
1232: No match
1233: athing
1234: No match
1235: fthing
1236: No match
1237:
1238: /^[^ab\]cde]/
1239: fthing
1240: 0: f
1241: [thing
1242: 0: [
1243: \\thing
1244: 0: \
1245: *** Failers
1246: 0: *
1247: athing
1248: No match
1249: bthing
1250: No match
1251: ]thing
1252: No match
1253: cthing
1254: No match
1255: dthing
1256: No match
1257: ething
1258: No match
1259:
1260: /^[^]cde]/
1261: athing
1262: 0: a
1263: fthing
1264: 0: f
1265: *** Failers
1266: 0: *
1267: ]thing
1268: No match
1269: cthing
1270: No match
1271: dthing
1272: No match
1273: ething
1274: No match
1275:
1276: /^\/
1277:
1278: 0: \x81
1279:
1280: /^ÿ/
1281: ÿ
1282: 0: \xff
1283:
1284: /^[0-9]+$/
1285: 0
1286: 0: 0
1287: 1
1288: 0: 1
1289: 2
1290: 0: 2
1291: 3
1292: 0: 3
1293: 4
1294: 0: 4
1295: 5
1296: 0: 5
1297: 6
1298: 0: 6
1299: 7
1300: 0: 7
1301: 8
1302: 0: 8
1303: 9
1304: 0: 9
1305: 10
1306: 0: 10
1307: 100
1308: 0: 100
1309: *** Failers
1310: No match
1311: abc
1312: No match
1313:
1314: /^.*nter/
1315: enter
1316: 0: enter
1317: inter
1318: 0: inter
1319: uponter
1320: 0: uponter
1321:
1322: /^xxx[0-9]+$/
1323: xxx0
1324: 0: xxx0
1325: xxx1234
1326: 0: xxx1234
1327: *** Failers
1328: No match
1329: xxx
1330: No match
1331:
1332: /^.+[0-9][0-9][0-9]$/
1333: x123
1334: 0: x123
1335: xx123
1336: 0: xx123
1337: 123456
1338: 0: 123456
1339: *** Failers
1340: No match
1341: 123
1342: No match
1343: x1234
1344: 0: x1234
1345:
1346: /^.+?[0-9][0-9][0-9]$/
1347: x123
1348: 0: x123
1349: xx123
1350: 0: xx123
1351: 123456
1352: 0: 123456
1353: *** Failers
1354: No match
1355: 123
1356: No match
1357: x1234
1358: 0: x1234
1359:
1360: /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
1361: abc!pqr=apquxz.ixr.zzz.ac.uk
1362: 0: abc!pqr=apquxz.ixr.zzz.ac.uk
1363: *** Failers
1364: No match
1365: !pqr=apquxz.ixr.zzz.ac.uk
1366: No match
1367: abc!=apquxz.ixr.zzz.ac.uk
1368: No match
1369: abc!pqr=apquxz:ixr.zzz.ac.uk
1370: No match
1371: abc!pqr=apquxz.ixr.zzz.ac.ukk
1372: No match
1373:
1374: /:/
1375: Well, we need a colon: somewhere
1376: 0: :
1377: *** Fail if we don't
1378: No match
1379:
1380: /([\da-f:]+)$/i
1381: 0abc
1382: 0: 0abc
1383: abc
1384: 0: abc
1385: fed
1386: 0: fed
1387: E
1388: 0: E
1389: ::
1390: 0: ::
1391: 5f03:12C0::932e
1392: 0: 5f03:12C0::932e
1393: fed def
1394: 0: def
1395: Any old stuff
1396: 0: ff
1397: *** Failers
1398: No match
1399: 0zzz
1400: No match
1401: gzzz
1402: No match
1403: fed\x20
1404: No match
1405: Any old rubbish
1406: No match
1407:
1408: /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
1409: .1.2.3
1410: 0: .1.2.3
1411: A.12.123.0
1412: 0: A.12.123.0
1413: *** Failers
1414: No match
1415: .1.2.3333
1416: No match
1417: 1.2.3
1418: No match
1419: 1234.2.3
1420: No match
1421:
1422: /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
1423: 1 IN SOA non-sp1 non-sp2(
1424: 0: 1 IN SOA non-sp1 non-sp2(
1425: 1 IN SOA non-sp1 non-sp2 (
1426: 0: 1 IN SOA non-sp1 non-sp2 (
1427: *** Failers
1428: No match
1429: 1IN SOA non-sp1 non-sp2(
1430: No match
1431:
1432: /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
1433: a.
1434: 0: a.
1435: Z.
1436: 0: Z.
1437: 2.
1438: 0: 2.
1439: ab-c.pq-r.
1440: 0: ab-c.pq-r.
1441: sxk.zzz.ac.uk.
1442: 0: sxk.zzz.ac.uk.
1443: x-.y-.
1444: 0: x-.y-.
1445: *** Failers
1446: No match
1447: -abc.peq.
1448: No match
1449:
1450: /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
1451: *.a
1452: 0: *.a
1453: *.b0-a
1454: 0: *.b0-a
1455: *.c3-b.c
1456: 0: *.c3-b.c
1457: *.c-a.b-c
1458: 0: *.c-a.b-c
1459: *** Failers
1460: No match
1461: *.0
1462: No match
1463: *.a-
1464: No match
1465: *.a-b.c-
1466: No match
1467: *.c-a.0-c
1468: No match
1469:
1470: /^(?=ab(de))(abd)(e)/
1471: abde
1472: 0: abde
1473:
1474: /^(?!(ab)de|x)(abd)(f)/
1475: abdf
1476: 0: abdf
1477:
1478: /^(?=(ab(cd)))(ab)/
1479: abcd
1480: 0: ab
1481:
1482: /^[\da-f](\.[\da-f])*$/i
1483: a.b.c.d
1484: 0: a.b.c.d
1485: A.B.C.D
1486: 0: A.B.C.D
1487: a.b.c.1.2.3.C
1488: 0: a.b.c.1.2.3.C
1489:
1490: /^\".*\"\s*(;.*)?$/
1491: \"1234\"
1492: 0: "1234"
1493: \"abcd\" ;
1494: 0: "abcd" ;
1495: \"\" ; rhubarb
1496: 0: "" ; rhubarb
1497: *** Failers
1498: No match
1499: \"1234\" : things
1500: No match
1501:
1502: /^$/
1503: \
1504: 0:
1505: *** Failers
1506: No match
1507:
1508: / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
1509: ab c
1510: 0: ab c
1511: *** Failers
1512: No match
1513: abc
1514: No match
1515: ab cde
1516: No match
1517:
1518: /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
1519: ab c
1520: 0: ab c
1521: *** Failers
1522: No match
1523: abc
1524: No match
1525: ab cde
1526: No match
1527:
1528: /^ a\ b[c ]d $/x
1529: a bcd
1530: 0: a bcd
1531: a b d
1532: 0: a b d
1533: *** Failers
1534: No match
1535: abcd
1536: No match
1537: ab d
1538: No match
1539:
1540: /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
1541: abcdefhijklm
1542: 0: abcdefhijklm
1543:
1544: /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
1545: abcdefhijklm
1546: 0: abcdefhijklm
1547:
1548: /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
1549: a+ Z0+\x08\n\x1d\x12
1550: 0: a+ Z0+\x08\x0a\x1d\x12
1551:
1552: /^[.^$|()*+?{,}]+/
1553: .^\$(*+)|{?,?}
1554: 0: .^$(*+)|{?,?}
1555:
1556: /^a*\w/
1557: z
1558: 0: z
1559: az
1560: 0: az
1561: 1: a
1562: aaaz
1563: 0: aaaz
1564: 1: aaa
1565: 2: aa
1566: 3: a
1567: a
1568: 0: a
1569: aa
1570: 0: aa
1571: 1: a
1572: aaaa
1573: 0: aaaa
1574: 1: aaa
1575: 2: aa
1576: 3: a
1577: a+
1578: 0: a
1579: aa+
1580: 0: aa
1581: 1: a
1582:
1583: /^a*?\w/
1584: z
1585: 0: z
1586: az
1587: 0: az
1588: 1: a
1589: aaaz
1590: 0: aaaz
1591: 1: aaa
1592: 2: aa
1593: 3: a
1594: a
1595: 0: a
1596: aa
1597: 0: aa
1598: 1: a
1599: aaaa
1600: 0: aaaa
1601: 1: aaa
1602: 2: aa
1603: 3: a
1604: a+
1605: 0: a
1606: aa+
1607: 0: aa
1608: 1: a
1609:
1610: /^a+\w/
1611: az
1612: 0: az
1613: aaaz
1614: 0: aaaz
1615: 1: aaa
1616: 2: aa
1617: aa
1618: 0: aa
1619: aaaa
1620: 0: aaaa
1621: 1: aaa
1622: 2: aa
1623: aa+
1624: 0: aa
1625:
1626: /^a+?\w/
1627: az
1628: 0: az
1629: aaaz
1630: 0: aaaz
1631: 1: aaa
1632: 2: aa
1633: aa
1634: 0: aa
1635: aaaa
1636: 0: aaaa
1637: 1: aaa
1638: 2: aa
1639: aa+
1640: 0: aa
1641:
1642: /^\d{8}\w{2,}/
1643: 1234567890
1644: 0: 1234567890
1645: 12345678ab
1646: 0: 12345678ab
1647: 12345678__
1648: 0: 12345678__
1649: *** Failers
1650: No match
1651: 1234567
1652: No match
1653:
1654: /^[aeiou\d]{4,5}$/
1655: uoie
1656: 0: uoie
1657: 1234
1658: 0: 1234
1659: 12345
1660: 0: 12345
1661: aaaaa
1662: 0: aaaaa
1663: *** Failers
1664: No match
1665: 123456
1666: No match
1667:
1668: /^[aeiou\d]{4,5}?/
1669: uoie
1670: 0: uoie
1671: 1234
1672: 0: 1234
1673: 12345
1674: 0: 12345
1675: 1: 1234
1676: aaaaa
1677: 0: aaaaa
1678: 1: aaaa
1679: 123456
1680: 0: 12345
1681: 1: 1234
1682:
1683: /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/
1684: From abcd Mon Sep 01 12:33:02 1997
1685: 0: From abcd Mon Sep 01 12:33
1686:
1687: /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
1688: From abcd Mon Sep 01 12:33:02 1997
1689: 0: From abcd Mon Sep 01 12:33
1690: From abcd Mon Sep 1 12:33:02 1997
1691: 0: From abcd Mon Sep 1 12:33
1692: *** Failers
1693: No match
1694: From abcd Sep 01 12:33:02 1997
1695: No match
1696:
1697: /^12.34/s
1698: 12\n34
1699: 0: 12\x0a34
1700: 12\r34
1701: 0: 12\x0d34
1702:
1703: /\w+(?=\t)/
1704: the quick brown\t fox
1705: 0: brown
1706:
1707: /foo(?!bar)(.*)/
1708: foobar is foolish see?
1709: 0: foolish see?
1710:
1711: /(?:(?!foo)...|^.{0,2})bar(.*)/
1712: foobar crowbar etc
1713: 0: rowbar etc
1714: barrel
1715: 0: barrel
1716: 2barrel
1717: 0: 2barrel
1718: A barrel
1719: 0: A barrel
1720:
1721: /^(\D*)(?=\d)(?!123)/
1722: abc456
1723: 0: abc
1724: *** Failers
1725: No match
1726: abc123
1727: No match
1728:
1729: /^1234(?# test newlines
1730: inside)/
1731: 1234
1732: 0: 1234
1733:
1734: /^1234 #comment in extended re
1735: /x
1736: 1234
1737: 0: 1234
1738:
1739: /#rhubarb
1740: abcd/x
1741: abcd
1742: 0: abcd
1743:
1744: /^abcd#rhubarb/x
1745: abcd
1746: 0: abcd
1747:
1748: /(?!^)abc/
1749: the abc
1750: 0: abc
1751: *** Failers
1752: No match
1753: abc
1754: No match
1755:
1756: /(?=^)abc/
1757: abc
1758: 0: abc
1759: *** Failers
1760: No match
1761: the abc
1762: No match
1763:
1.1.1.5 ! misho 1764: /^[ab]{1,3}(ab*|b)/O
1.1.1.2 misho 1765: aabbbbb
1766: 0: aabbbbb
1767: 1: aabbbb
1768: 2: aabbb
1769: 3: aabb
1770: 4: aab
1771: 5: aa
1772:
1.1.1.5 ! misho 1773: /^[ab]{1,3}?(ab*|b)/O
1.1.1.2 misho 1774: aabbbbb
1775: 0: aabbbbb
1776: 1: aabbbb
1777: 2: aabbb
1778: 3: aabb
1779: 4: aab
1780: 5: aa
1781:
1.1.1.5 ! misho 1782: /^[ab]{1,3}?(ab*?|b)/O
1.1.1.2 misho 1783: aabbbbb
1784: 0: aabbbbb
1785: 1: aabbbb
1786: 2: aabbb
1787: 3: aabb
1788: 4: aab
1789: 5: aa
1790:
1.1.1.5 ! misho 1791: /^[ab]{1,3}(ab*?|b)/O
1.1.1.2 misho 1792: aabbbbb
1793: 0: aabbbbb
1794: 1: aabbbb
1795: 2: aabbb
1796: 3: aabb
1797: 4: aab
1798: 5: aa
1799:
1800: / (?: [\040\t] | \(
1801: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1802: \) )* # optional leading comment
1803: (?: (?:
1804: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1805: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1806: |
1807: " (?: # opening quote...
1808: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1809: | # or
1810: \\ [^\x80-\xff] # Escaped something (something != CR)
1811: )* " # closing quote
1812: ) # initial word
1813: (?: (?: [\040\t] | \(
1814: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1815: \) )* \. (?: [\040\t] | \(
1816: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1817: \) )* (?:
1818: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1819: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1820: |
1821: " (?: # opening quote...
1822: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1823: | # or
1824: \\ [^\x80-\xff] # Escaped something (something != CR)
1825: )* " # closing quote
1826: ) )* # further okay, if led by a period
1827: (?: [\040\t] | \(
1828: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1829: \) )* @ (?: [\040\t] | \(
1830: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1831: \) )* (?:
1832: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1833: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1834: | \[ # [
1835: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1836: \] # ]
1837: ) # initial subdomain
1838: (?: #
1839: (?: [\040\t] | \(
1840: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1841: \) )* \. # if led by a period...
1842: (?: [\040\t] | \(
1843: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1844: \) )* (?:
1845: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1846: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1847: | \[ # [
1848: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1849: \] # ]
1850: ) # ...further okay
1851: )*
1852: # address
1853: | # or
1854: (?:
1855: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1856: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1857: |
1858: " (?: # opening quote...
1859: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1860: | # or
1861: \\ [^\x80-\xff] # Escaped something (something != CR)
1862: )* " # closing quote
1863: ) # one word, optionally followed by....
1864: (?:
1865: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
1866: \(
1867: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1868: \) | # comments, or...
1869:
1870: " (?: # opening quote...
1871: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1872: | # or
1873: \\ [^\x80-\xff] # Escaped something (something != CR)
1874: )* " # closing quote
1875: # quoted strings
1876: )*
1877: < (?: [\040\t] | \(
1878: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1879: \) )* # leading <
1880: (?: @ (?: [\040\t] | \(
1881: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1882: \) )* (?:
1883: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1884: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1885: | \[ # [
1886: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1887: \] # ]
1888: ) # initial subdomain
1889: (?: #
1890: (?: [\040\t] | \(
1891: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1892: \) )* \. # if led by a period...
1893: (?: [\040\t] | \(
1894: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1895: \) )* (?:
1896: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1897: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1898: | \[ # [
1899: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1900: \] # ]
1901: ) # ...further okay
1902: )*
1903:
1904: (?: (?: [\040\t] | \(
1905: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1906: \) )* , (?: [\040\t] | \(
1907: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1908: \) )* @ (?: [\040\t] | \(
1909: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1910: \) )* (?:
1911: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1912: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1913: | \[ # [
1914: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1915: \] # ]
1916: ) # initial subdomain
1917: (?: #
1918: (?: [\040\t] | \(
1919: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1920: \) )* \. # if led by a period...
1921: (?: [\040\t] | \(
1922: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1923: \) )* (?:
1924: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1925: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1926: | \[ # [
1927: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1928: \] # ]
1929: ) # ...further okay
1930: )*
1931: )* # further okay, if led by comma
1932: : # closing colon
1933: (?: [\040\t] | \(
1934: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1935: \) )* )? # optional route
1936: (?:
1937: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1938: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1939: |
1940: " (?: # opening quote...
1941: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1942: | # or
1943: \\ [^\x80-\xff] # Escaped something (something != CR)
1944: )* " # closing quote
1945: ) # initial word
1946: (?: (?: [\040\t] | \(
1947: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1948: \) )* \. (?: [\040\t] | \(
1949: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1950: \) )* (?:
1951: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1952: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1953: |
1954: " (?: # opening quote...
1955: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1956: | # or
1957: \\ [^\x80-\xff] # Escaped something (something != CR)
1958: )* " # closing quote
1959: ) )* # further okay, if led by a period
1960: (?: [\040\t] | \(
1961: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1962: \) )* @ (?: [\040\t] | \(
1963: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1964: \) )* (?:
1965: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1966: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1967: | \[ # [
1968: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1969: \] # ]
1970: ) # initial subdomain
1971: (?: #
1972: (?: [\040\t] | \(
1973: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1974: \) )* \. # if led by a period...
1975: (?: [\040\t] | \(
1976: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1977: \) )* (?:
1978: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1979: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1980: | \[ # [
1981: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1982: \] # ]
1983: ) # ...further okay
1984: )*
1985: # address spec
1986: (?: [\040\t] | \(
1987: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1988: \) )* > # trailing >
1989: # name and address
1990: ) (?: [\040\t] | \(
1991: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1992: \) )* # optional trailing comment
1993: /x
1994: Alan Other <user\@dom.ain>
1995: 0: Alan Other <user@dom.ain>
1996: <user\@dom.ain>
1997: 0: user@dom.ain
1998: 1: user@dom
1999: user\@dom.ain
2000: 0: user@dom.ain
2001: 1: user@dom
2002: \"A. Other\" <user.1234\@dom.ain> (a comment)
2003: 0: "A. Other" <user.1234@dom.ain> (a comment)
2004: 1: "A. Other" <user.1234@dom.ain>
2005: 2: "A. Other" <user.1234@dom.ain>
2006: A. Other <user.1234\@dom.ain> (a comment)
2007: 0: Other <user.1234@dom.ain> (a comment)
2008: 1: Other <user.1234@dom.ain>
2009: 2: Other <user.1234@dom.ain>
2010: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
2011: 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
2012: 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
2013: A missing angle <user\@some.where
2014: 0: user@some.where
2015: 1: user@some
2016: *** Failers
2017: No match
2018: The quick brown fox
2019: No match
2020:
2021: /[\040\t]* # Nab whitespace.
2022: (?:
2023: \( # (
2024: [^\\\x80-\xff\n\015()] * # normal*
2025: (?: # (
2026: (?: \\ [^\x80-\xff] |
2027: \( # (
2028: [^\\\x80-\xff\n\015()] * # normal*
2029: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2030: \) # )
2031: ) # special
2032: [^\\\x80-\xff\n\015()] * # normal*
2033: )* # )*
2034: \) # )
2035: [\040\t]* )* # If comment found, allow more spaces.
2036: # optional leading comment
2037: (?:
2038: (?:
2039: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2040: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2041: # Atom
2042: | # or
2043: " # "
2044: [^\\\x80-\xff\n\015"] * # normal
2045: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2046: " # "
2047: # Quoted string
2048: )
2049: [\040\t]* # Nab whitespace.
2050: (?:
2051: \( # (
2052: [^\\\x80-\xff\n\015()] * # normal*
2053: (?: # (
2054: (?: \\ [^\x80-\xff] |
2055: \( # (
2056: [^\\\x80-\xff\n\015()] * # normal*
2057: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2058: \) # )
2059: ) # special
2060: [^\\\x80-\xff\n\015()] * # normal*
2061: )* # )*
2062: \) # )
2063: [\040\t]* )* # If comment found, allow more spaces.
2064: (?:
2065: \.
2066: [\040\t]* # Nab whitespace.
2067: (?:
2068: \( # (
2069: [^\\\x80-\xff\n\015()] * # normal*
2070: (?: # (
2071: (?: \\ [^\x80-\xff] |
2072: \( # (
2073: [^\\\x80-\xff\n\015()] * # normal*
2074: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2075: \) # )
2076: ) # special
2077: [^\\\x80-\xff\n\015()] * # normal*
2078: )* # )*
2079: \) # )
2080: [\040\t]* )* # If comment found, allow more spaces.
2081: (?:
2082: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2083: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2084: # Atom
2085: | # or
2086: " # "
2087: [^\\\x80-\xff\n\015"] * # normal
2088: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2089: " # "
2090: # Quoted string
2091: )
2092: [\040\t]* # Nab whitespace.
2093: (?:
2094: \( # (
2095: [^\\\x80-\xff\n\015()] * # normal*
2096: (?: # (
2097: (?: \\ [^\x80-\xff] |
2098: \( # (
2099: [^\\\x80-\xff\n\015()] * # normal*
2100: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2101: \) # )
2102: ) # special
2103: [^\\\x80-\xff\n\015()] * # normal*
2104: )* # )*
2105: \) # )
2106: [\040\t]* )* # If comment found, allow more spaces.
2107: # additional words
2108: )*
2109: @
2110: [\040\t]* # Nab whitespace.
2111: (?:
2112: \( # (
2113: [^\\\x80-\xff\n\015()] * # normal*
2114: (?: # (
2115: (?: \\ [^\x80-\xff] |
2116: \( # (
2117: [^\\\x80-\xff\n\015()] * # normal*
2118: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2119: \) # )
2120: ) # special
2121: [^\\\x80-\xff\n\015()] * # normal*
2122: )* # )*
2123: \) # )
2124: [\040\t]* )* # If comment found, allow more spaces.
2125: (?:
2126: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2127: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2128: |
2129: \[ # [
2130: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2131: \] # ]
2132: )
2133: [\040\t]* # Nab whitespace.
2134: (?:
2135: \( # (
2136: [^\\\x80-\xff\n\015()] * # normal*
2137: (?: # (
2138: (?: \\ [^\x80-\xff] |
2139: \( # (
2140: [^\\\x80-\xff\n\015()] * # normal*
2141: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2142: \) # )
2143: ) # special
2144: [^\\\x80-\xff\n\015()] * # normal*
2145: )* # )*
2146: \) # )
2147: [\040\t]* )* # If comment found, allow more spaces.
2148: # optional trailing comments
2149: (?:
2150: \.
2151: [\040\t]* # Nab whitespace.
2152: (?:
2153: \( # (
2154: [^\\\x80-\xff\n\015()] * # normal*
2155: (?: # (
2156: (?: \\ [^\x80-\xff] |
2157: \( # (
2158: [^\\\x80-\xff\n\015()] * # normal*
2159: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2160: \) # )
2161: ) # special
2162: [^\\\x80-\xff\n\015()] * # normal*
2163: )* # )*
2164: \) # )
2165: [\040\t]* )* # If comment found, allow more spaces.
2166: (?:
2167: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2168: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2169: |
2170: \[ # [
2171: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2172: \] # ]
2173: )
2174: [\040\t]* # Nab whitespace.
2175: (?:
2176: \( # (
2177: [^\\\x80-\xff\n\015()] * # normal*
2178: (?: # (
2179: (?: \\ [^\x80-\xff] |
2180: \( # (
2181: [^\\\x80-\xff\n\015()] * # normal*
2182: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2183: \) # )
2184: ) # special
2185: [^\\\x80-\xff\n\015()] * # normal*
2186: )* # )*
2187: \) # )
2188: [\040\t]* )* # If comment found, allow more spaces.
2189: # optional trailing comments
2190: )*
2191: # address
2192: | # or
2193: (?:
2194: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2195: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2196: # Atom
2197: | # or
2198: " # "
2199: [^\\\x80-\xff\n\015"] * # normal
2200: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2201: " # "
2202: # Quoted string
2203: )
2204: # leading word
2205: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
2206: (?:
2207: (?:
2208: \( # (
2209: [^\\\x80-\xff\n\015()] * # normal*
2210: (?: # (
2211: (?: \\ [^\x80-\xff] |
2212: \( # (
2213: [^\\\x80-\xff\n\015()] * # normal*
2214: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2215: \) # )
2216: ) # special
2217: [^\\\x80-\xff\n\015()] * # normal*
2218: )* # )*
2219: \) # )
2220: |
2221: " # "
2222: [^\\\x80-\xff\n\015"] * # normal
2223: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2224: " # "
2225: ) # "special" comment or quoted string
2226: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
2227: )*
2228: <
2229: [\040\t]* # Nab whitespace.
2230: (?:
2231: \( # (
2232: [^\\\x80-\xff\n\015()] * # normal*
2233: (?: # (
2234: (?: \\ [^\x80-\xff] |
2235: \( # (
2236: [^\\\x80-\xff\n\015()] * # normal*
2237: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2238: \) # )
2239: ) # special
2240: [^\\\x80-\xff\n\015()] * # normal*
2241: )* # )*
2242: \) # )
2243: [\040\t]* )* # If comment found, allow more spaces.
2244: # <
2245: (?:
2246: @
2247: [\040\t]* # Nab whitespace.
2248: (?:
2249: \( # (
2250: [^\\\x80-\xff\n\015()] * # normal*
2251: (?: # (
2252: (?: \\ [^\x80-\xff] |
2253: \( # (
2254: [^\\\x80-\xff\n\015()] * # normal*
2255: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2256: \) # )
2257: ) # special
2258: [^\\\x80-\xff\n\015()] * # normal*
2259: )* # )*
2260: \) # )
2261: [\040\t]* )* # If comment found, allow more spaces.
2262: (?:
2263: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2264: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2265: |
2266: \[ # [
2267: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2268: \] # ]
2269: )
2270: [\040\t]* # Nab whitespace.
2271: (?:
2272: \( # (
2273: [^\\\x80-\xff\n\015()] * # normal*
2274: (?: # (
2275: (?: \\ [^\x80-\xff] |
2276: \( # (
2277: [^\\\x80-\xff\n\015()] * # normal*
2278: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2279: \) # )
2280: ) # special
2281: [^\\\x80-\xff\n\015()] * # normal*
2282: )* # )*
2283: \) # )
2284: [\040\t]* )* # If comment found, allow more spaces.
2285: # optional trailing comments
2286: (?:
2287: \.
2288: [\040\t]* # Nab whitespace.
2289: (?:
2290: \( # (
2291: [^\\\x80-\xff\n\015()] * # normal*
2292: (?: # (
2293: (?: \\ [^\x80-\xff] |
2294: \( # (
2295: [^\\\x80-\xff\n\015()] * # normal*
2296: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2297: \) # )
2298: ) # special
2299: [^\\\x80-\xff\n\015()] * # normal*
2300: )* # )*
2301: \) # )
2302: [\040\t]* )* # If comment found, allow more spaces.
2303: (?:
2304: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2305: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2306: |
2307: \[ # [
2308: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2309: \] # ]
2310: )
2311: [\040\t]* # Nab whitespace.
2312: (?:
2313: \( # (
2314: [^\\\x80-\xff\n\015()] * # normal*
2315: (?: # (
2316: (?: \\ [^\x80-\xff] |
2317: \( # (
2318: [^\\\x80-\xff\n\015()] * # normal*
2319: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2320: \) # )
2321: ) # special
2322: [^\\\x80-\xff\n\015()] * # normal*
2323: )* # )*
2324: \) # )
2325: [\040\t]* )* # If comment found, allow more spaces.
2326: # optional trailing comments
2327: )*
2328: (?: ,
2329: [\040\t]* # Nab whitespace.
2330: (?:
2331: \( # (
2332: [^\\\x80-\xff\n\015()] * # normal*
2333: (?: # (
2334: (?: \\ [^\x80-\xff] |
2335: \( # (
2336: [^\\\x80-\xff\n\015()] * # normal*
2337: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2338: \) # )
2339: ) # special
2340: [^\\\x80-\xff\n\015()] * # normal*
2341: )* # )*
2342: \) # )
2343: [\040\t]* )* # If comment found, allow more spaces.
2344: @
2345: [\040\t]* # Nab whitespace.
2346: (?:
2347: \( # (
2348: [^\\\x80-\xff\n\015()] * # normal*
2349: (?: # (
2350: (?: \\ [^\x80-\xff] |
2351: \( # (
2352: [^\\\x80-\xff\n\015()] * # normal*
2353: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2354: \) # )
2355: ) # special
2356: [^\\\x80-\xff\n\015()] * # normal*
2357: )* # )*
2358: \) # )
2359: [\040\t]* )* # If comment found, allow more spaces.
2360: (?:
2361: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2362: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2363: |
2364: \[ # [
2365: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2366: \] # ]
2367: )
2368: [\040\t]* # Nab whitespace.
2369: (?:
2370: \( # (
2371: [^\\\x80-\xff\n\015()] * # normal*
2372: (?: # (
2373: (?: \\ [^\x80-\xff] |
2374: \( # (
2375: [^\\\x80-\xff\n\015()] * # normal*
2376: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2377: \) # )
2378: ) # special
2379: [^\\\x80-\xff\n\015()] * # normal*
2380: )* # )*
2381: \) # )
2382: [\040\t]* )* # If comment found, allow more spaces.
2383: # optional trailing comments
2384: (?:
2385: \.
2386: [\040\t]* # Nab whitespace.
2387: (?:
2388: \( # (
2389: [^\\\x80-\xff\n\015()] * # normal*
2390: (?: # (
2391: (?: \\ [^\x80-\xff] |
2392: \( # (
2393: [^\\\x80-\xff\n\015()] * # normal*
2394: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2395: \) # )
2396: ) # special
2397: [^\\\x80-\xff\n\015()] * # normal*
2398: )* # )*
2399: \) # )
2400: [\040\t]* )* # If comment found, allow more spaces.
2401: (?:
2402: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2403: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2404: |
2405: \[ # [
2406: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2407: \] # ]
2408: )
2409: [\040\t]* # Nab whitespace.
2410: (?:
2411: \( # (
2412: [^\\\x80-\xff\n\015()] * # normal*
2413: (?: # (
2414: (?: \\ [^\x80-\xff] |
2415: \( # (
2416: [^\\\x80-\xff\n\015()] * # normal*
2417: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2418: \) # )
2419: ) # special
2420: [^\\\x80-\xff\n\015()] * # normal*
2421: )* # )*
2422: \) # )
2423: [\040\t]* )* # If comment found, allow more spaces.
2424: # optional trailing comments
2425: )*
2426: )* # additional domains
2427: :
2428: [\040\t]* # Nab whitespace.
2429: (?:
2430: \( # (
2431: [^\\\x80-\xff\n\015()] * # normal*
2432: (?: # (
2433: (?: \\ [^\x80-\xff] |
2434: \( # (
2435: [^\\\x80-\xff\n\015()] * # normal*
2436: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2437: \) # )
2438: ) # special
2439: [^\\\x80-\xff\n\015()] * # normal*
2440: )* # )*
2441: \) # )
2442: [\040\t]* )* # If comment found, allow more spaces.
2443: # optional trailing comments
2444: )? # optional route
2445: (?:
2446: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2447: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2448: # Atom
2449: | # or
2450: " # "
2451: [^\\\x80-\xff\n\015"] * # normal
2452: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2453: " # "
2454: # Quoted string
2455: )
2456: [\040\t]* # Nab whitespace.
2457: (?:
2458: \( # (
2459: [^\\\x80-\xff\n\015()] * # normal*
2460: (?: # (
2461: (?: \\ [^\x80-\xff] |
2462: \( # (
2463: [^\\\x80-\xff\n\015()] * # normal*
2464: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2465: \) # )
2466: ) # special
2467: [^\\\x80-\xff\n\015()] * # normal*
2468: )* # )*
2469: \) # )
2470: [\040\t]* )* # If comment found, allow more spaces.
2471: (?:
2472: \.
2473: [\040\t]* # Nab whitespace.
2474: (?:
2475: \( # (
2476: [^\\\x80-\xff\n\015()] * # normal*
2477: (?: # (
2478: (?: \\ [^\x80-\xff] |
2479: \( # (
2480: [^\\\x80-\xff\n\015()] * # normal*
2481: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2482: \) # )
2483: ) # special
2484: [^\\\x80-\xff\n\015()] * # normal*
2485: )* # )*
2486: \) # )
2487: [\040\t]* )* # If comment found, allow more spaces.
2488: (?:
2489: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2490: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2491: # Atom
2492: | # or
2493: " # "
2494: [^\\\x80-\xff\n\015"] * # normal
2495: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
2496: " # "
2497: # Quoted string
2498: )
2499: [\040\t]* # Nab whitespace.
2500: (?:
2501: \( # (
2502: [^\\\x80-\xff\n\015()] * # normal*
2503: (?: # (
2504: (?: \\ [^\x80-\xff] |
2505: \( # (
2506: [^\\\x80-\xff\n\015()] * # normal*
2507: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2508: \) # )
2509: ) # special
2510: [^\\\x80-\xff\n\015()] * # normal*
2511: )* # )*
2512: \) # )
2513: [\040\t]* )* # If comment found, allow more spaces.
2514: # additional words
2515: )*
2516: @
2517: [\040\t]* # Nab whitespace.
2518: (?:
2519: \( # (
2520: [^\\\x80-\xff\n\015()] * # normal*
2521: (?: # (
2522: (?: \\ [^\x80-\xff] |
2523: \( # (
2524: [^\\\x80-\xff\n\015()] * # normal*
2525: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2526: \) # )
2527: ) # special
2528: [^\\\x80-\xff\n\015()] * # normal*
2529: )* # )*
2530: \) # )
2531: [\040\t]* )* # If comment found, allow more spaces.
2532: (?:
2533: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2534: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2535: |
2536: \[ # [
2537: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2538: \] # ]
2539: )
2540: [\040\t]* # Nab whitespace.
2541: (?:
2542: \( # (
2543: [^\\\x80-\xff\n\015()] * # normal*
2544: (?: # (
2545: (?: \\ [^\x80-\xff] |
2546: \( # (
2547: [^\\\x80-\xff\n\015()] * # normal*
2548: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2549: \) # )
2550: ) # special
2551: [^\\\x80-\xff\n\015()] * # normal*
2552: )* # )*
2553: \) # )
2554: [\040\t]* )* # If comment found, allow more spaces.
2555: # optional trailing comments
2556: (?:
2557: \.
2558: [\040\t]* # Nab whitespace.
2559: (?:
2560: \( # (
2561: [^\\\x80-\xff\n\015()] * # normal*
2562: (?: # (
2563: (?: \\ [^\x80-\xff] |
2564: \( # (
2565: [^\\\x80-\xff\n\015()] * # normal*
2566: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2567: \) # )
2568: ) # special
2569: [^\\\x80-\xff\n\015()] * # normal*
2570: )* # )*
2571: \) # )
2572: [\040\t]* )* # If comment found, allow more spaces.
2573: (?:
2574: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
2575: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
2576: |
2577: \[ # [
2578: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
2579: \] # ]
2580: )
2581: [\040\t]* # Nab whitespace.
2582: (?:
2583: \( # (
2584: [^\\\x80-\xff\n\015()] * # normal*
2585: (?: # (
2586: (?: \\ [^\x80-\xff] |
2587: \( # (
2588: [^\\\x80-\xff\n\015()] * # normal*
2589: (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
2590: \) # )
2591: ) # special
2592: [^\\\x80-\xff\n\015()] * # normal*
2593: )* # )*
2594: \) # )
2595: [\040\t]* )* # If comment found, allow more spaces.
2596: # optional trailing comments
2597: )*
2598: # address spec
2599: > # >
2600: # name and address
2601: )
2602: /x
2603: Alan Other <user\@dom.ain>
2604: 0: Alan Other <user@dom.ain>
2605: <user\@dom.ain>
2606: 0: user@dom.ain
2607: 1: user@dom
2608: user\@dom.ain
2609: 0: user@dom.ain
2610: 1: user@dom
2611: \"A. Other\" <user.1234\@dom.ain> (a comment)
2612: 0: "A. Other" <user.1234@dom.ain>
2613: A. Other <user.1234\@dom.ain> (a comment)
2614: 0: Other <user.1234@dom.ain>
2615: \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
2616: 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
2617: 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
2618: A missing angle <user\@some.where
2619: 0: user@some.where
2620: 1: user@some
2621: *** Failers
2622: No match
2623: The quick brown fox
2624: No match
2625:
2626: /abc\0def\00pqr\000xyz\0000AB/
2627: abc\0def\00pqr\000xyz\0000AB
2628: 0: abc\x00def\x00pqr\x00xyz\x000AB
2629: abc456 abc\0def\00pqr\000xyz\0000ABCDE
2630: 0: abc\x00def\x00pqr\x00xyz\x000AB
2631:
2632: /abc\x0def\x00pqr\x000xyz\x0000AB/
2633: abc\x0def\x00pqr\x000xyz\x0000AB
2634: 0: abc\x0def\x00pqr\x000xyz\x0000AB
2635: abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
2636: 0: abc\x0def\x00pqr\x000xyz\x0000AB
2637:
2638: /^[\000-\037]/
2639: \0A
2640: 0: \x00
2641: \01B
2642: 0: \x01
2643: \037C
2644: 0: \x1f
2645:
2646: /\0*/
2647: \0\0\0\0
2648: 0: \x00\x00\x00\x00
2649:
2650: /A\x0{2,3}Z/
2651: The A\x0\x0Z
2652: 0: A\x00\x00Z
2653: An A\0\x0\0Z
2654: 0: A\x00\x00\x00Z
2655: *** Failers
2656: No match
2657: A\0Z
2658: No match
2659: A\0\x0\0\x0Z
2660: No match
2661:
2662: /^\s/
2663: \040abc
2664: 0:
2665: \x0cabc
2666: 0: \x0c
2667: \nabc
2668: 0: \x0a
2669: \rabc
2670: 0: \x0d
2671: \tabc
2672: 0: \x09
2673: *** Failers
2674: No match
2675: abc
2676: No match
2677:
2678: /^a b
2679: c/x
2680: abc
2681: 0: abc
2682:
2683: /ab{1,3}bc/
2684: abbbbc
2685: 0: abbbbc
2686: abbbc
2687: 0: abbbc
2688: abbc
2689: 0: abbc
2690: *** Failers
2691: No match
2692: abc
2693: No match
2694: abbbbbc
2695: No match
2696:
2697: /([^.]*)\.([^:]*):[T ]+(.*)/
2698: track1.title:TBlah blah blah
2699: 0: track1.title:TBlah blah blah
2700:
2701: /([^.]*)\.([^:]*):[T ]+(.*)/i
2702: track1.title:TBlah blah blah
2703: 0: track1.title:TBlah blah blah
2704:
2705: /([^.]*)\.([^:]*):[t ]+(.*)/i
2706: track1.title:TBlah blah blah
2707: 0: track1.title:TBlah blah blah
2708:
2709: /^[W-c]+$/
2710: WXY_^abc
2711: 0: WXY_^abc
2712: *** Failers
2713: No match
2714: wxy
2715: No match
2716:
2717: /^[W-c]+$/i
2718: WXY_^abc
2719: 0: WXY_^abc
2720: wxy_^ABC
2721: 0: wxy_^ABC
2722:
2723: /^[\x3f-\x5F]+$/i
2724: WXY_^abc
2725: 0: WXY_^abc
2726: wxy_^ABC
2727: 0: wxy_^ABC
2728:
2729: /^abc$/m
2730: abc
2731: 0: abc
2732: qqq\nabc
2733: 0: abc
2734: abc\nzzz
2735: 0: abc
2736: qqq\nabc\nzzz
2737: 0: abc
2738:
2739: /^abc$/
2740: abc
2741: 0: abc
2742: *** Failers
2743: No match
2744: qqq\nabc
2745: No match
2746: abc\nzzz
2747: No match
2748: qqq\nabc\nzzz
2749: No match
2750:
2751: /\Aabc\Z/m
2752: abc
2753: 0: abc
2754: abc\n
2755: 0: abc
2756: *** Failers
2757: No match
2758: qqq\nabc
2759: No match
2760: abc\nzzz
2761: No match
2762: qqq\nabc\nzzz
2763: No match
2764:
2765: /\A(.)*\Z/s
2766: abc\ndef
2767: 0: abc\x0adef
2768:
2769: /\A(.)*\Z/m
2770: *** Failers
2771: 0: *** Failers
2772: abc\ndef
2773: No match
2774:
2775: /(?:b)|(?::+)/
2776: b::c
2777: 0: b
2778: c::b
2779: 0: ::
2780:
2781: /[-az]+/
2782: az-
2783: 0: az-
2784: *** Failers
2785: 0: a
2786: b
2787: No match
2788:
2789: /[az-]+/
2790: za-
2791: 0: za-
2792: *** Failers
2793: 0: a
2794: b
2795: No match
2796:
2797: /[a\-z]+/
2798: a-z
2799: 0: a-z
2800: *** Failers
2801: 0: a
2802: b
2803: No match
2804:
2805: /[a-z]+/
2806: abcdxyz
2807: 0: abcdxyz
2808:
2809: /[\d-]+/
2810: 12-34
2811: 0: 12-34
2812: *** Failers
2813: No match
2814: aaa
2815: No match
2816:
2817: /[\d-z]+/
2818: 12-34z
2819: 0: 12-34z
2820: *** Failers
2821: No match
2822: aaa
2823: No match
2824:
2825: /\x5c/
2826: \\
2827: 0: \
2828:
2829: /\x20Z/
2830: the Zoo
2831: 0: Z
2832: *** Failers
2833: No match
2834: Zulu
2835: No match
2836:
2837: /ab{3cd/
2838: ab{3cd
2839: 0: ab{3cd
2840:
2841: /ab{3,cd/
2842: ab{3,cd
2843: 0: ab{3,cd
2844:
2845: /ab{3,4a}cd/
2846: ab{3,4a}cd
2847: 0: ab{3,4a}cd
2848:
2849: /{4,5a}bc/
2850: {4,5a}bc
2851: 0: {4,5a}bc
2852:
2853: /^a.b/<lf>
2854: a\rb
2855: 0: a\x0db
2856: *** Failers
2857: No match
2858: a\nb
2859: No match
2860:
2861: /abc$/
2862: abc
2863: 0: abc
2864: abc\n
2865: 0: abc
2866: *** Failers
2867: No match
2868: abc\ndef
2869: No match
2870:
2871: /(abc)\123/
2872: abc\x53
2873: 0: abcS
2874:
2875: /(abc)\223/
2876: abc\x93
2877: 0: abc\x93
2878:
2879: /(abc)\323/
2880: abc\xd3
2881: 0: abc\xd3
2882:
2883: /(abc)\100/
2884: abc\x40
2885: 0: abc@
2886: abc\100
2887: 0: abc@
2888:
2889: /(abc)\1000/
2890: abc\x400
2891: 0: abc@0
2892: abc\x40\x30
2893: 0: abc@0
2894: abc\1000
2895: 0: abc@0
2896: abc\100\x30
2897: 0: abc@0
2898: abc\100\060
2899: 0: abc@0
2900: abc\100\60
2901: 0: abc@0
2902:
1.1.1.5 ! misho 2903: /^A\8B\9C$/
! 2904: A8B9C
! 2905: 0: A8B9C
! 2906: *** Failers
! 2907: No match
! 2908: A\08B\09C
! 2909: No match
! 2910:
! 2911: /^[A\8B\9C]+$/
! 2912: A8B9C
! 2913: 0: A8B9C
! 2914: *** Failers
! 2915: No match
! 2916: A8B9C\x00
! 2917: No match
! 2918:
1.1.1.2 misho 2919: /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
2920: abcdefghijk\12S
2921: 0: abcdefghijk\x0aS
2922:
2923: /ab\idef/
2924: abidef
2925: 0: abidef
2926:
2927: /a{0}bc/
2928: bc
2929: 0: bc
2930:
2931: /(a|(bc)){0,0}?xyz/
2932: xyz
2933: 0: xyz
2934:
2935: /abc[\10]de/
2936: abc\010de
2937: 0: abc\x08de
2938:
2939: /abc[\1]de/
2940: abc\1de
2941: 0: abc\x01de
2942:
2943: /(abc)[\1]de/
2944: abc\1de
2945: 0: abc\x01de
2946:
2947: /(?s)a.b/
2948: a\nb
2949: 0: a\x0ab
2950:
2951: /^([^a])([^\b])([^c]*)([^d]{3,4})/
2952: baNOTccccd
2953: 0: baNOTcccc
2954: 1: baNOTccc
2955: 2: baNOTcc
2956: 3: baNOTc
2957: baNOTcccd
2958: 0: baNOTccc
2959: 1: baNOTcc
2960: 2: baNOTc
2961: baNOTccd
2962: 0: baNOTcc
2963: 1: baNOTc
2964: bacccd
2965: 0: baccc
2966: *** Failers
2967: 0: *** Failers
2968: 1: *** Failer
2969: 2: *** Faile
2970: 3: *** Fail
2971: 4: *** Fai
2972: 5: *** Fa
2973: anything
2974: No match
2975: b\bc
2976: No match
2977: baccd
2978: No match
2979:
2980: /[^a]/
2981: Abc
2982: 0: A
2983:
2984: /[^a]/i
2985: Abc
2986: 0: b
2987:
2988: /[^a]+/
2989: AAAaAbc
2990: 0: AAA
2991:
2992: /[^a]+/i
2993: AAAaAbc
2994: 0: bc
2995:
2996: /[^a]+/
2997: bbb\nccc
2998: 0: bbb\x0accc
2999:
3000: /[^k]$/
3001: abc
3002: 0: c
3003: *** Failers
3004: 0: s
3005: abk
3006: No match
3007:
3008: /[^k]{2,3}$/
3009: abc
3010: 0: abc
3011: kbc
3012: 0: bc
3013: kabc
3014: 0: abc
3015: *** Failers
3016: 0: ers
3017: abk
3018: No match
3019: akb
3020: No match
3021: akk
3022: No match
3023:
3024: /^\d{8,}\@.+[^k]$/
3025: 12345678\@a.b.c.d
3026: 0: 12345678@a.b.c.d
3027: 123456789\@x.y.z
3028: 0: 123456789@x.y.z
3029: *** Failers
3030: No match
3031: 12345678\@x.y.uk
3032: No match
3033: 1234567\@a.b.c.d
3034: No match
3035:
3036: /[^a]/
3037: aaaabcd
3038: 0: b
3039: aaAabcd
3040: 0: A
3041:
3042: /[^a]/i
3043: aaaabcd
3044: 0: b
3045: aaAabcd
3046: 0: b
3047:
3048: /[^az]/
3049: aaaabcd
3050: 0: b
3051: aaAabcd
3052: 0: A
3053:
3054: /[^az]/i
3055: aaaabcd
3056: 0: b
3057: aaAabcd
3058: 0: b
3059:
3060: /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
3061: \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
3062: 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
3063:
3064: /P[^*]TAIRE[^*]{1,6}?LL/
3065: xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
3066: 0: PSTAIREISLL
3067:
3068: /P[^*]TAIRE[^*]{1,}?LL/
3069: xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
3070: 0: PSTAIREISLL
3071:
3072: /(\.\d\d[1-9]?)\d+/
3073: 1.230003938
3074: 0: .230003938
3075: 1.875000282
3076: 0: .875000282
3077: 1.235
3078: 0: .235
3079:
3080: /(\.\d\d((?=0)|\d(?=\d)))/
3081: 1.230003938
3082: 0: .230
3083: 1: .23
3084: 1.875000282
3085: 0: .875
3086: *** Failers
3087: No match
3088: 1.235
3089: No match
3090:
3091: /a(?)b/
3092: ab
3093: 0: ab
3094:
3095: /\b(foo)\s+(\w+)/i
3096: Food is on the foo table
3097: 0: foo table
3098:
3099: /foo(.*)bar/
3100: The food is under the bar in the barn.
3101: 0: food is under the bar in the bar
3102: 1: food is under the bar
3103:
3104: /foo(.*?)bar/
3105: The food is under the bar in the barn.
3106: 0: food is under the bar in the bar
3107: 1: food is under the bar
3108:
1.1.1.5 ! misho 3109: /(.*)(\d*)/O
1.1.1.2 misho 3110: I have 2 numbers: 53147
1.1.1.4 misho 3111: Matched, but offsets vector is too small to show all matches
1.1.1.2 misho 3112: 0: I have 2 numbers: 53147
3113: 1: I have 2 numbers: 5314
3114: 2: I have 2 numbers: 531
3115: 3: I have 2 numbers: 53
3116: 4: I have 2 numbers: 5
3117: 5: I have 2 numbers:
3118: 6: I have 2 numbers:
3119: 7: I have 2 numbers
3120: 8: I have 2 number
3121: 9: I have 2 numbe
3122: 10: I have 2 numb
3123: 11: I have 2 num
3124: 12: I have 2 nu
3125: 13: I have 2 n
3126: 14: I have 2
3127: 15: I have 2
3128: 16: I have
3129: 17: I have
3130: 18: I hav
3131: 19: I ha
3132: 20: I h
3133: 21: I
3134:
3135: /(.*)(\d+)/
3136: I have 2 numbers: 53147
3137: 0: I have 2 numbers: 53147
1.1.1.5 ! misho 3138: 1: I have 2
1.1.1.2 misho 3139:
1.1.1.5 ! misho 3140: /(.*?)(\d*)/O
1.1.1.2 misho 3141: I have 2 numbers: 53147
1.1.1.4 misho 3142: Matched, but offsets vector is too small to show all matches
1.1.1.2 misho 3143: 0: I have 2 numbers: 53147
3144: 1: I have 2 numbers: 5314
3145: 2: I have 2 numbers: 531
3146: 3: I have 2 numbers: 53
3147: 4: I have 2 numbers: 5
3148: 5: I have 2 numbers:
3149: 6: I have 2 numbers:
3150: 7: I have 2 numbers
3151: 8: I have 2 number
3152: 9: I have 2 numbe
3153: 10: I have 2 numb
3154: 11: I have 2 num
3155: 12: I have 2 nu
3156: 13: I have 2 n
3157: 14: I have 2
3158: 15: I have 2
3159: 16: I have
3160: 17: I have
3161: 18: I hav
3162: 19: I ha
3163: 20: I h
3164: 21: I
3165:
3166: /(.*?)(\d+)/
3167: I have 2 numbers: 53147
3168: 0: I have 2 numbers: 53147
1.1.1.5 ! misho 3169: 1: I have 2
1.1.1.2 misho 3170:
3171: /(.*)(\d+)$/
3172: I have 2 numbers: 53147
3173: 0: I have 2 numbers: 53147
3174:
3175: /(.*?)(\d+)$/
3176: I have 2 numbers: 53147
3177: 0: I have 2 numbers: 53147
3178:
3179: /(.*)\b(\d+)$/
3180: I have 2 numbers: 53147
3181: 0: I have 2 numbers: 53147
3182:
3183: /(.*\D)(\d+)$/
3184: I have 2 numbers: 53147
3185: 0: I have 2 numbers: 53147
3186:
3187: /^\D*(?!123)/
3188: ABC123
3189: 0: AB
3190: 1: A
3191: 2:
3192:
3193: /^(\D*)(?=\d)(?!123)/
3194: ABC445
3195: 0: ABC
3196: *** Failers
3197: No match
3198: ABC123
3199: No match
3200:
3201: /^[W-]46]/
3202: W46]789
3203: 0: W46]
3204: -46]789
3205: 0: -46]
3206: *** Failers
3207: No match
3208: Wall
3209: No match
3210: Zebra
3211: No match
3212: 42
3213: No match
3214: [abcd]
3215: No match
3216: ]abcd[
3217: No match
3218:
3219: /^[W-\]46]/
3220: W46]789
3221: 0: W
3222: Wall
3223: 0: W
3224: Zebra
3225: 0: Z
3226: Xylophone
3227: 0: X
3228: 42
3229: 0: 4
3230: [abcd]
3231: 0: [
3232: ]abcd[
3233: 0: ]
3234: \\backslash
3235: 0: \
3236: *** Failers
3237: No match
3238: -46]789
3239: No match
3240: well
3241: No match
3242:
3243: /\d\d\/\d\d\/\d\d\d\d/
3244: 01/01/2000
3245: 0: 01/01/2000
3246:
3247: /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
3248: word cat dog elephant mussel cow horse canary baboon snake shark otherword
3249: 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
3250: word cat dog elephant mussel cow horse canary baboon snake shark
3251: No match
3252:
3253: /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
3254: word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
3255: No match
3256:
3257: /^(a){0,0}/
3258: bcd
3259: 0:
3260: abc
3261: 0:
3262: aab
3263: 0:
3264:
3265: /^(a){0,1}/
3266: bcd
3267: 0:
3268: abc
3269: 0: a
3270: 1:
3271: aab
3272: 0: a
3273: 1:
3274:
3275: /^(a){0,2}/
3276: bcd
3277: 0:
3278: abc
3279: 0: a
3280: 1:
3281: aab
3282: 0: aa
3283: 1: a
3284: 2:
3285:
3286: /^(a){0,3}/
3287: bcd
3288: 0:
3289: abc
3290: 0: a
3291: 1:
3292: aab
3293: 0: aa
3294: 1: a
3295: 2:
3296: aaa
3297: 0: aaa
3298: 1: aa
3299: 2: a
3300: 3:
3301:
3302: /^(a){0,}/
3303: bcd
3304: 0:
3305: abc
3306: 0: a
3307: 1:
3308: aab
3309: 0: aa
3310: 1: a
3311: 2:
3312: aaa
3313: 0: aaa
3314: 1: aa
3315: 2: a
3316: 3:
3317: aaaaaaaa
3318: 0: aaaaaaaa
3319: 1: aaaaaaa
3320: 2: aaaaaa
3321: 3: aaaaa
3322: 4: aaaa
3323: 5: aaa
3324: 6: aa
3325: 7: a
3326: 8:
3327:
3328: /^(a){1,1}/
3329: bcd
3330: No match
3331: abc
3332: 0: a
3333: aab
3334: 0: a
3335:
3336: /^(a){1,2}/
3337: bcd
3338: No match
3339: abc
3340: 0: a
3341: aab
3342: 0: aa
3343: 1: a
3344:
3345: /^(a){1,3}/
3346: bcd
3347: No match
3348: abc
3349: 0: a
3350: aab
3351: 0: aa
3352: 1: a
3353: aaa
3354: 0: aaa
3355: 1: aa
3356: 2: a
3357:
3358: /^(a){1,}/
3359: bcd
3360: No match
3361: abc
3362: 0: a
3363: aab
3364: 0: aa
3365: 1: a
3366: aaa
3367: 0: aaa
3368: 1: aa
3369: 2: a
3370: aaaaaaaa
3371: 0: aaaaaaaa
3372: 1: aaaaaaa
3373: 2: aaaaaa
3374: 3: aaaaa
3375: 4: aaaa
3376: 5: aaa
3377: 6: aa
3378: 7: a
3379:
3380: /.*\.gif/
3381: borfle\nbib.gif\nno
3382: 0: bib.gif
3383:
3384: /.{0,}\.gif/
3385: borfle\nbib.gif\nno
3386: 0: bib.gif
3387:
3388: /.*\.gif/m
3389: borfle\nbib.gif\nno
3390: 0: bib.gif
3391:
3392: /.*\.gif/s
3393: borfle\nbib.gif\nno
3394: 0: borfle\x0abib.gif
3395:
3396: /.*\.gif/ms
3397: borfle\nbib.gif\nno
3398: 0: borfle\x0abib.gif
3399:
3400: /.*$/
3401: borfle\nbib.gif\nno
3402: 0: no
3403:
3404: /.*$/m
3405: borfle\nbib.gif\nno
3406: 0: borfle
3407:
3408: /.*$/s
3409: borfle\nbib.gif\nno
3410: 0: borfle\x0abib.gif\x0ano
3411:
3412: /.*$/ms
3413: borfle\nbib.gif\nno
3414: 0: borfle\x0abib.gif\x0ano
3415: 1: borfle\x0abib.gif
3416: 2: borfle
3417:
3418: /.*$/
3419: borfle\nbib.gif\nno\n
3420: 0: no
3421:
3422: /.*$/m
3423: borfle\nbib.gif\nno\n
3424: 0: borfle
3425:
3426: /.*$/s
3427: borfle\nbib.gif\nno\n
3428: 0: borfle\x0abib.gif\x0ano\x0a
3429: 1: borfle\x0abib.gif\x0ano
3430:
3431: /.*$/ms
3432: borfle\nbib.gif\nno\n
3433: 0: borfle\x0abib.gif\x0ano\x0a
3434: 1: borfle\x0abib.gif\x0ano
3435: 2: borfle\x0abib.gif
3436: 3: borfle
3437:
3438: /(.*X|^B)/
3439: abcde\n1234Xyz
3440: 0: 1234X
3441: BarFoo
3442: 0: B
3443: *** Failers
3444: No match
3445: abcde\nBar
3446: No match
3447:
3448: /(.*X|^B)/m
3449: abcde\n1234Xyz
3450: 0: 1234X
3451: BarFoo
3452: 0: B
3453: abcde\nBar
3454: 0: B
3455:
3456: /(.*X|^B)/s
3457: abcde\n1234Xyz
3458: 0: abcde\x0a1234X
3459: BarFoo
3460: 0: B
3461: *** Failers
3462: No match
3463: abcde\nBar
3464: No match
3465:
3466: /(.*X|^B)/ms
3467: abcde\n1234Xyz
3468: 0: abcde\x0a1234X
3469: BarFoo
3470: 0: B
3471: abcde\nBar
3472: 0: B
3473:
3474: /(?s)(.*X|^B)/
3475: abcde\n1234Xyz
3476: 0: abcde\x0a1234X
3477: BarFoo
3478: 0: B
3479: *** Failers
3480: No match
3481: abcde\nBar
3482: No match
3483:
3484: /(?s:.*X|^B)/
3485: abcde\n1234Xyz
3486: 0: abcde\x0a1234X
3487: BarFoo
3488: 0: B
3489: *** Failers
3490: No match
3491: abcde\nBar
3492: No match
3493:
3494: /^.*B/
3495: **** Failers
3496: No match
3497: abc\nB
3498: No match
3499:
3500: /(?s)^.*B/
3501: abc\nB
3502: 0: abc\x0aB
3503:
3504: /(?m)^.*B/
3505: abc\nB
3506: 0: B
3507:
3508: /(?ms)^.*B/
3509: abc\nB
3510: 0: abc\x0aB
3511:
3512: /(?ms)^B/
3513: abc\nB
3514: 0: B
3515:
3516: /(?s)B$/
3517: B\n
3518: 0: B
3519:
3520: /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
3521: 123456654321
3522: 0: 123456654321
3523:
3524: /^\d\d\d\d\d\d\d\d\d\d\d\d/
3525: 123456654321
3526: 0: 123456654321
3527:
3528: /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
3529: 123456654321
3530: 0: 123456654321
3531:
3532: /^[abc]{12}/
3533: abcabcabcabc
3534: 0: abcabcabcabc
3535:
3536: /^[a-c]{12}/
3537: abcabcabcabc
3538: 0: abcabcabcabc
3539:
3540: /^(a|b|c){12}/
3541: abcabcabcabc
3542: 0: abcabcabcabc
3543:
3544: /^[abcdefghijklmnopqrstuvwxy0123456789]/
3545: n
3546: 0: n
3547: *** Failers
3548: No match
3549: z
3550: No match
3551:
3552: /abcde{0,0}/
3553: abcd
3554: 0: abcd
3555: *** Failers
3556: No match
3557: abce
3558: No match
3559:
3560: /ab[cd]{0,0}e/
3561: abe
3562: 0: abe
3563: *** Failers
3564: No match
3565: abcde
3566: No match
3567:
3568: /ab(c){0,0}d/
3569: abd
3570: 0: abd
3571: *** Failers
3572: No match
3573: abcd
3574: No match
3575:
3576: /a(b*)/
3577: a
3578: 0: a
3579: ab
3580: 0: ab
3581: abbbb
3582: 0: abbbb
3583: *** Failers
3584: 0: a
3585: bbbbb
3586: No match
3587:
3588: /ab\d{0}e/
3589: abe
3590: 0: abe
3591: *** Failers
3592: No match
3593: ab1e
3594: No match
3595:
3596: /"([^\\"]+|\\.)*"/
3597: the \"quick\" brown fox
3598: 0: "quick"
3599: \"the \\\"quick\\\" brown fox\"
3600: 0: "the \"quick\" brown fox"
3601:
3602: /.*?/g+
3603: abc
3604: 0: abc
3605: 0+
3606: 1: ab
3607: 2: a
3608: 3:
3609: 0:
3610: 0+
3611:
3612: /\b/g+
3613: abc
3614: 0:
3615: 0+ abc
3616: 0:
3617: 0+
3618:
3619: /\b/+g
3620: abc
3621: 0:
3622: 0+ abc
3623: 0:
3624: 0+
3625:
3626: //g
3627: abc
3628: 0:
3629: 0:
3630: 0:
3631: 0:
3632:
3633: /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is
3634: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3635: 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
3636:
3637: /a[^a]b/
3638: acb
3639: 0: acb
3640: a\nb
3641: 0: a\x0ab
3642:
3643: /a.b/
3644: acb
3645: 0: acb
3646: *** Failers
3647: No match
3648: a\nb
3649: No match
3650:
3651: /a[^a]b/s
3652: acb
3653: 0: acb
3654: a\nb
3655: 0: a\x0ab
3656:
3657: /a.b/s
3658: acb
3659: 0: acb
3660: a\nb
3661: 0: a\x0ab
3662:
3663: /^(b+?|a){1,2}?c/
3664: bac
3665: 0: bac
3666: bbac
3667: 0: bbac
3668: bbbac
3669: 0: bbbac
3670: bbbbac
3671: 0: bbbbac
3672: bbbbbac
3673: 0: bbbbbac
3674:
3675: /^(b+|a){1,2}?c/
3676: bac
3677: 0: bac
3678: bbac
3679: 0: bbac
3680: bbbac
3681: 0: bbbac
3682: bbbbac
3683: 0: bbbbac
3684: bbbbbac
3685: 0: bbbbbac
3686:
3687: /(?!\A)x/m
3688: x\nb\n
3689: No match
3690: a\bx\n
3691: 0: x
3692:
3693: /\x0{ab}/
3694: \0{ab}
3695: 0: \x00{ab}
3696:
3697: /(A|B)*?CD/
3698: CD
3699: 0: CD
3700:
3701: /(A|B)*CD/
3702: CD
3703: 0: CD
3704:
3705: /(?<!bar)foo/
3706: foo
3707: 0: foo
3708: catfood
3709: 0: foo
3710: arfootle
3711: 0: foo
3712: rfoosh
3713: 0: foo
3714: *** Failers
3715: No match
3716: barfoo
3717: No match
3718: towbarfoo
3719: No match
3720:
3721: /\w{3}(?<!bar)foo/
3722: catfood
3723: 0: catfoo
3724: *** Failers
3725: No match
3726: foo
3727: No match
3728: barfoo
3729: No match
3730: towbarfoo
3731: No match
3732:
3733: /(?<=(foo)a)bar/
3734: fooabar
3735: 0: bar
3736: *** Failers
3737: No match
3738: bar
3739: No match
3740: foobbar
3741: No match
3742:
3743: /\Aabc\z/m
3744: abc
3745: 0: abc
3746: *** Failers
3747: No match
3748: abc\n
3749: No match
3750: qqq\nabc
3751: No match
3752: abc\nzzz
3753: No match
3754: qqq\nabc\nzzz
3755: No match
3756:
3757: "(?>.*/)foo"
3758: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
3759: No match
3760:
3761: "(?>.*/)foo"
3762: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3763: 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3764:
3765: /(?>(\.\d\d[1-9]?))\d+/
3766: 1.230003938
3767: 0: .230003938
3768: 1.875000282
3769: 0: .875000282
3770: *** Failers
3771: No match
3772: 1.235
3773: No match
3774:
3775: /^((?>\w+)|(?>\s+))*$/
3776: now is the time for all good men to come to the aid of the party
3777: 0: now is the time for all good men to come to the aid of the party
3778: *** Failers
3779: No match
3780: this is not a line with only words and spaces!
3781: No match
3782:
3783: /(\d+)(\w)/
3784: 12345a
3785: 0: 12345a
3786: 1: 12345
3787: 2: 1234
3788: 3: 123
3789: 4: 12
3790: 12345+
3791: 0: 12345
3792: 1: 1234
3793: 2: 123
3794: 3: 12
3795:
3796: /((?>\d+))(\w)/
3797: 12345a
3798: 0: 12345a
3799: *** Failers
3800: No match
3801: 12345+
3802: No match
3803:
3804: /(?>a+)b/
3805: aaab
3806: 0: aaab
3807:
3808: /((?>a+)b)/
3809: aaab
3810: 0: aaab
3811:
3812: /(?>(a+))b/
3813: aaab
3814: 0: aaab
3815:
3816: /(?>b)+/
3817: aaabbbccc
3818: 0: bbb
3819: 1: bb
3820: 2: b
3821:
3822: /(?>a+|b+|c+)*c/
3823: aaabbbbccccd
3824: 0: aaabbbbcccc
3825: 1: aaabbbbc
3826:
3827: /(a+|b+|c+)*c/
3828: aaabbbbccccd
3829: 0: aaabbbbcccc
3830: 1: aaabbbbccc
3831: 2: aaabbbbcc
3832: 3: aaabbbbc
3833:
3834: /((?>[^()]+)|\([^()]*\))+/
3835: ((abc(ade)ufh()()x
3836: 0: abc(ade)ufh()()x
3837: 1: abc(ade)ufh()()
3838: 2: abc(ade)ufh()
3839: 3: abc(ade)ufh
3840: 4: abc(ade)
3841: 5: abc
3842:
3843: /\(((?>[^()]+)|\([^()]+\))+\)/
3844: (abc)
3845: 0: (abc)
3846: (abc(def)xyz)
3847: 0: (abc(def)xyz)
3848: *** Failers
3849: No match
3850: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3851: No match
3852:
3853: /a(?-i)b/i
3854: ab
3855: 0: ab
3856: Ab
3857: 0: Ab
3858: *** Failers
3859: No match
3860: aB
3861: No match
3862: AB
3863: No match
3864:
3865: /(a (?x)b c)d e/
3866: a bcd e
3867: 0: a bcd e
3868: *** Failers
3869: No match
3870: a b cd e
3871: No match
3872: abcd e
3873: No match
3874: a bcde
3875: No match
3876:
3877: /(a b(?x)c d (?-x)e f)/
3878: a bcde f
3879: 0: a bcde f
3880: *** Failers
3881: No match
3882: abcdef
3883: No match
3884:
3885: /(a(?i)b)c/
3886: abc
3887: 0: abc
3888: aBc
3889: 0: aBc
3890: *** Failers
3891: No match
3892: abC
3893: No match
3894: aBC
3895: No match
3896: Abc
3897: No match
3898: ABc
3899: No match
3900: ABC
3901: No match
3902: AbC
3903: No match
3904:
3905: /a(?i:b)c/
3906: abc
3907: 0: abc
3908: aBc
3909: 0: aBc
3910: *** Failers
3911: No match
3912: ABC
3913: No match
3914: abC
3915: No match
3916: aBC
3917: No match
3918:
3919: /a(?i:b)*c/
3920: aBc
3921: 0: aBc
3922: aBBc
3923: 0: aBBc
3924: *** Failers
3925: No match
3926: aBC
3927: No match
3928: aBBC
3929: No match
3930:
3931: /a(?=b(?i)c)\w\wd/
3932: abcd
3933: 0: abcd
3934: abCd
3935: 0: abCd
3936: *** Failers
3937: No match
3938: aBCd
3939: No match
3940: abcD
3941: No match
3942:
3943: /(?s-i:more.*than).*million/i
3944: more than million
3945: 0: more than million
3946: more than MILLION
3947: 0: more than MILLION
3948: more \n than Million
3949: 0: more \x0a than Million
3950: *** Failers
3951: No match
3952: MORE THAN MILLION
3953: No match
3954: more \n than \n million
3955: No match
3956:
3957: /(?:(?s-i)more.*than).*million/i
3958: more than million
3959: 0: more than million
3960: more than MILLION
3961: 0: more than MILLION
3962: more \n than Million
3963: 0: more \x0a than Million
3964: *** Failers
3965: No match
3966: MORE THAN MILLION
3967: No match
3968: more \n than \n million
3969: No match
3970:
3971: /(?>a(?i)b+)+c/
3972: abc
3973: 0: abc
3974: aBbc
3975: 0: aBbc
3976: aBBc
3977: 0: aBBc
3978: *** Failers
3979: No match
3980: Abc
3981: No match
3982: abAb
3983: No match
3984: abbC
3985: No match
3986:
3987: /(?=a(?i)b)\w\wc/
3988: abc
3989: 0: abc
3990: aBc
3991: 0: aBc
3992: *** Failers
3993: No match
3994: Ab
3995: No match
3996: abC
3997: No match
3998: aBC
3999: No match
4000:
4001: /(?<=a(?i)b)(\w\w)c/
4002: abxxc
4003: 0: xxc
4004: aBxxc
4005: 0: xxc
4006: *** Failers
4007: No match
4008: Abxxc
4009: No match
4010: ABxxc
4011: No match
4012: abxxC
4013: No match
4014:
4015: /^(?(?=abc)\w{3}:|\d\d)$/
4016: abc:
4017: 0: abc:
4018: 12
4019: 0: 12
4020: *** Failers
4021: No match
4022: 123
4023: No match
4024: xyz
4025: No match
4026:
4027: /^(?(?!abc)\d\d|\w{3}:)$/
4028: abc:
4029: 0: abc:
4030: 12
4031: 0: 12
4032: *** Failers
4033: No match
4034: 123
4035: No match
4036: xyz
4037: No match
4038:
4039: /(?(?<=foo)bar|cat)/
4040: foobar
4041: 0: bar
4042: cat
4043: 0: cat
4044: fcat
4045: 0: cat
4046: focat
4047: 0: cat
4048: *** Failers
4049: No match
4050: foocat
4051: No match
4052:
4053: /(?(?<!foo)cat|bar)/
4054: foobar
4055: 0: bar
4056: cat
4057: 0: cat
4058: fcat
4059: 0: cat
4060: focat
4061: 0: cat
4062: *** Failers
4063: No match
4064: foocat
4065: No match
4066:
4067: /(?>a*)*/
4068: a
4069: 0: a
4070: 1:
4071: aa
4072: 0: aa
4073: 1:
4074: aaaa
4075: 0: aaaa
4076: 1:
4077:
4078: /(abc|)+/
4079: abc
4080: 0: abc
4081: 1:
4082: abcabc
4083: 0: abcabc
4084: 1: abc
4085: 2:
4086: abcabcabc
4087: 0: abcabcabc
4088: 1: abcabc
4089: 2: abc
4090: 3:
4091: xyz
4092: 0:
4093:
4094: /([a]*)*/
4095: a
4096: 0: a
4097: 1:
4098: aaaaa
4099: 0: aaaaa
4100: 1: aaaa
4101: 2: aaa
4102: 3: aa
4103: 4: a
4104: 5:
4105:
4106: /([ab]*)*/
4107: a
4108: 0: a
4109: 1:
4110: b
4111: 0: b
4112: 1:
4113: ababab
4114: 0: ababab
4115: 1: ababa
4116: 2: abab
4117: 3: aba
4118: 4: ab
4119: 5: a
4120: 6:
4121: aaaabcde
4122: 0: aaaab
4123: 1: aaaa
4124: 2: aaa
4125: 3: aa
4126: 4: a
4127: 5:
4128: bbbb
4129: 0: bbbb
4130: 1: bbb
4131: 2: bb
4132: 3: b
4133: 4:
4134:
4135: /([^a]*)*/
4136: b
4137: 0: b
4138: 1:
4139: bbbb
4140: 0: bbbb
4141: 1: bbb
4142: 2: bb
4143: 3: b
4144: 4:
4145: aaa
4146: 0:
4147:
4148: /([^ab]*)*/
4149: cccc
4150: 0: cccc
4151: 1: ccc
4152: 2: cc
4153: 3: c
4154: 4:
4155: abab
4156: 0:
4157:
4158: /([a]*?)*/
4159: a
4160: 0: a
4161: 1:
4162: aaaa
4163: 0: aaaa
4164: 1: aaa
4165: 2: aa
4166: 3: a
4167: 4:
4168:
4169: /([ab]*?)*/
4170: a
4171: 0: a
4172: 1:
4173: b
4174: 0: b
4175: 1:
4176: abab
4177: 0: abab
4178: 1: aba
4179: 2: ab
4180: 3: a
4181: 4:
4182: baba
4183: 0: baba
4184: 1: bab
4185: 2: ba
4186: 3: b
4187: 4:
4188:
4189: /([^a]*?)*/
4190: b
4191: 0: b
4192: 1:
4193: bbbb
4194: 0: bbbb
4195: 1: bbb
4196: 2: bb
4197: 3: b
4198: 4:
4199: aaa
4200: 0:
4201:
4202: /([^ab]*?)*/
4203: c
4204: 0: c
4205: 1:
4206: cccc
4207: 0: cccc
4208: 1: ccc
4209: 2: cc
4210: 3: c
4211: 4:
4212: baba
4213: 0:
4214:
4215: /(?>a*)*/
4216: a
4217: 0: a
4218: 1:
4219: aaabcde
4220: 0: aaa
4221: 1:
4222:
4223: /((?>a*))*/
4224: aaaaa
4225: 0: aaaaa
4226: 1:
4227: aabbaa
4228: 0: aa
4229: 1:
4230:
4231: /((?>a*?))*/
4232: aaaaa
4233: 0: aaaaa
4234: 1:
4235: aabbaa
4236: 0: aa
4237: 1:
4238:
4239: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
4240: 12-sep-98
4241: 0: 12-sep-98
4242: 12-09-98
4243: 0: 12-09-98
4244: *** Failers
4245: No match
4246: sep-12-98
4247: No match
4248:
4249: /(?i:saturday|sunday)/
4250: saturday
4251: 0: saturday
4252: sunday
4253: 0: sunday
4254: Saturday
4255: 0: Saturday
4256: Sunday
4257: 0: Sunday
4258: SATURDAY
4259: 0: SATURDAY
4260: SUNDAY
4261: 0: SUNDAY
4262: SunDay
4263: 0: SunDay
4264:
4265: /(a(?i)bc|BB)x/
4266: abcx
4267: 0: abcx
4268: aBCx
4269: 0: aBCx
4270: bbx
4271: 0: bbx
4272: BBx
4273: 0: BBx
4274: *** Failers
4275: No match
4276: abcX
4277: No match
4278: aBCX
4279: No match
4280: bbX
4281: No match
4282: BBX
4283: No match
4284:
4285: /^([ab](?i)[cd]|[ef])/
4286: ac
4287: 0: ac
4288: aC
4289: 0: aC
4290: bD
4291: 0: bD
4292: elephant
4293: 0: e
4294: Europe
4295: 0: E
4296: frog
4297: 0: f
4298: France
4299: 0: F
4300: *** Failers
4301: No match
4302: Africa
4303: No match
4304:
4305: /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
4306: ab
4307: 0: ab
4308: aBd
4309: 0: aBd
4310: xy
4311: 0: xy
4312: xY
4313: 0: xY
4314: zebra
4315: 0: z
4316: Zambesi
4317: 0: Z
4318: *** Failers
4319: No match
4320: aCD
4321: No match
4322: XY
4323: No match
4324:
4325: /(?<=foo\n)^bar/m
4326: foo\nbar
4327: 0: bar
4328: *** Failers
4329: No match
4330: bar
4331: No match
4332: baz\nbar
4333: No match
4334:
4335: /(?<=(?<!foo)bar)baz/
4336: barbaz
4337: 0: baz
4338: barbarbaz
4339: 0: baz
4340: koobarbaz
4341: 0: baz
4342: *** Failers
4343: No match
4344: baz
4345: No match
4346: foobarbaz
4347: No match
4348:
4349: /The following tests are taken from the Perl 5.005 test suite; some of them/
4350: /are compatible with 5.004, but I'd rather not have to sort them out./
4351: No match
4352:
4353: /abc/
4354: abc
4355: 0: abc
4356: xabcy
4357: 0: abc
4358: ababc
4359: 0: abc
4360: *** Failers
4361: No match
4362: xbc
4363: No match
4364: axc
4365: No match
4366: abx
4367: No match
4368:
4369: /ab*c/
4370: abc
4371: 0: abc
4372:
4373: /ab*bc/
4374: abc
4375: 0: abc
4376: abbc
4377: 0: abbc
4378: abbbbc
4379: 0: abbbbc
4380:
4381: /.{1}/
4382: abbbbc
4383: 0: a
4384:
4385: /.{3,4}/
4386: abbbbc
4387: 0: abbb
4388:
4389: /ab{0,}bc/
4390: abbbbc
4391: 0: abbbbc
4392:
4393: /ab+bc/
4394: abbc
4395: 0: abbc
4396: *** Failers
4397: No match
4398: abc
4399: No match
4400: abq
4401: No match
4402:
4403: /ab+bc/
4404: abbbbc
4405: 0: abbbbc
4406:
4407: /ab{1,}bc/
4408: abbbbc
4409: 0: abbbbc
4410:
4411: /ab{1,3}bc/
4412: abbbbc
4413: 0: abbbbc
4414:
4415: /ab{3,4}bc/
4416: abbbbc
4417: 0: abbbbc
4418:
4419: /ab{4,5}bc/
4420: *** Failers
4421: No match
4422: abq
4423: No match
4424: abbbbc
4425: No match
4426:
4427: /ab?bc/
4428: abbc
4429: 0: abbc
4430: abc
4431: 0: abc
4432:
4433: /ab{0,1}bc/
4434: abc
4435: 0: abc
4436:
4437: /ab?bc/
4438:
4439: /ab?c/
4440: abc
4441: 0: abc
4442:
4443: /ab{0,1}c/
4444: abc
4445: 0: abc
4446:
4447: /^abc$/
4448: abc
4449: 0: abc
4450: *** Failers
4451: No match
4452: abbbbc
4453: No match
4454: abcc
4455: No match
4456:
4457: /^abc/
4458: abcc
4459: 0: abc
4460:
4461: /^abc$/
4462:
4463: /abc$/
4464: aabc
4465: 0: abc
4466: *** Failers
4467: No match
4468: aabc
4469: 0: abc
4470: aabcd
4471: No match
4472:
4473: /^/
4474: abc
4475: 0:
4476:
4477: /$/
4478: abc
4479: 0:
4480:
4481: /a.c/
4482: abc
4483: 0: abc
4484: axc
4485: 0: axc
4486:
4487: /a.*c/
4488: axyzc
4489: 0: axyzc
4490:
4491: /a[bc]d/
4492: abd
4493: 0: abd
4494: *** Failers
4495: No match
4496: axyzd
4497: No match
4498: abc
4499: No match
4500:
4501: /a[b-d]e/
4502: ace
4503: 0: ace
4504:
4505: /a[b-d]/
4506: aac
4507: 0: ac
4508:
4509: /a[-b]/
4510: a-
4511: 0: a-
4512:
4513: /a[b-]/
4514: a-
4515: 0: a-
4516:
4517: /a]/
4518: a]
4519: 0: a]
4520:
4521: /a[]]b/
4522: a]b
4523: 0: a]b
4524:
4525: /a[^bc]d/
4526: aed
4527: 0: aed
4528: *** Failers
4529: No match
4530: abd
4531: No match
4532: abd
4533: No match
4534:
4535: /a[^-b]c/
4536: adc
4537: 0: adc
4538:
4539: /a[^]b]c/
4540: adc
4541: 0: adc
4542: *** Failers
4543: No match
4544: a-c
4545: 0: a-c
4546: a]c
4547: No match
4548:
4549: /\ba\b/
4550: a-
4551: 0: a
4552: -a
4553: 0: a
4554: -a-
4555: 0: a
4556:
4557: /\by\b/
4558: *** Failers
4559: No match
4560: xy
4561: No match
4562: yz
4563: No match
4564: xyz
4565: No match
4566:
4567: /\Ba\B/
4568: *** Failers
4569: 0: a
4570: a-
4571: No match
4572: -a
4573: No match
4574: -a-
4575: No match
4576:
4577: /\By\b/
4578: xy
4579: 0: y
4580:
4581: /\by\B/
4582: yz
4583: 0: y
4584:
4585: /\By\B/
4586: xyz
4587: 0: y
4588:
4589: /\w/
4590: a
4591: 0: a
4592:
4593: /\W/
4594: -
4595: 0: -
4596: *** Failers
4597: 0: *
4598: -
4599: 0: -
4600: a
4601: No match
4602:
4603: /a\sb/
4604: a b
4605: 0: a b
4606:
4607: /a\Sb/
4608: a-b
4609: 0: a-b
4610: *** Failers
4611: No match
4612: a-b
4613: 0: a-b
4614: a b
4615: No match
4616:
4617: /\d/
4618: 1
4619: 0: 1
4620:
4621: /\D/
4622: -
4623: 0: -
4624: *** Failers
4625: 0: *
4626: -
4627: 0: -
4628: 1
4629: No match
4630:
4631: /[\w]/
4632: a
4633: 0: a
4634:
4635: /[\W]/
4636: -
4637: 0: -
4638: *** Failers
4639: 0: *
4640: -
4641: 0: -
4642: a
4643: No match
4644:
4645: /a[\s]b/
4646: a b
4647: 0: a b
4648:
4649: /a[\S]b/
4650: a-b
4651: 0: a-b
4652: *** Failers
4653: No match
4654: a-b
4655: 0: a-b
4656: a b
4657: No match
4658:
4659: /[\d]/
4660: 1
4661: 0: 1
4662:
4663: /[\D]/
4664: -
4665: 0: -
4666: *** Failers
4667: 0: *
4668: -
4669: 0: -
4670: 1
4671: No match
4672:
4673: /ab|cd/
4674: abc
4675: 0: ab
4676: abcd
4677: 0: ab
4678:
4679: /()ef/
4680: def
4681: 0: ef
4682:
4683: /$b/
4684:
4685: /a\(b/
4686: a(b
4687: 0: a(b
4688:
4689: /a\(*b/
4690: ab
4691: 0: ab
4692: a((b
4693: 0: a((b
4694:
4695: /a\\b/
4696: a\b
4697: No match
4698:
4699: /((a))/
4700: abc
4701: 0: a
4702:
4703: /(a)b(c)/
4704: abc
4705: 0: abc
4706:
4707: /a+b+c/
4708: aabbabc
4709: 0: abc
4710:
4711: /a{1,}b{1,}c/
4712: aabbabc
4713: 0: abc
4714:
4715: /a.+?c/
4716: abcabc
4717: 0: abcabc
4718: 1: abc
4719:
4720: /(a+|b)*/
4721: ab
4722: 0: ab
4723: 1: a
4724: 2:
4725:
4726: /(a+|b){0,}/
4727: ab
4728: 0: ab
4729: 1: a
4730: 2:
4731:
4732: /(a+|b)+/
4733: ab
4734: 0: ab
4735: 1: a
4736:
4737: /(a+|b){1,}/
4738: ab
4739: 0: ab
4740: 1: a
4741:
4742: /(a+|b)?/
4743: ab
4744: 0: a
4745: 1:
4746:
4747: /(a+|b){0,1}/
4748: ab
4749: 0: a
4750: 1:
4751:
4752: /[^ab]*/
4753: cde
4754: 0: cde
4755:
4756: /abc/
4757: *** Failers
4758: No match
4759: b
4760: No match
4761:
4762:
4763: /a*/
4764:
4765:
4766: /([abc])*d/
4767: abbbcd
4768: 0: abbbcd
4769:
4770: /([abc])*bcd/
4771: abcd
4772: 0: abcd
4773:
4774: /a|b|c|d|e/
4775: e
4776: 0: e
4777:
4778: /(a|b|c|d|e)f/
4779: ef
4780: 0: ef
4781:
4782: /abcd*efg/
4783: abcdefg
4784: 0: abcdefg
4785:
4786: /ab*/
4787: xabyabbbz
4788: 0: ab
4789: xayabbbz
4790: 0: a
4791:
4792: /(ab|cd)e/
4793: abcde
4794: 0: cde
4795:
4796: /[abhgefdc]ij/
4797: hij
4798: 0: hij
4799:
4800: /^(ab|cd)e/
4801:
4802: /(abc|)ef/
4803: abcdef
4804: 0: ef
4805:
4806: /(a|b)c*d/
4807: abcd
4808: 0: bcd
4809:
4810: /(ab|ab*)bc/
4811: abc
4812: 0: abc
4813:
4814: /a([bc]*)c*/
4815: abc
4816: 0: abc
1.1.1.5 ! misho 4817: 1: a
1.1.1.2 misho 4818:
4819: /a([bc]*)(c*d)/
4820: abcd
4821: 0: abcd
4822:
4823: /a([bc]+)(c*d)/
4824: abcd
4825: 0: abcd
4826:
4827: /a([bc]*)(c+d)/
4828: abcd
4829: 0: abcd
4830:
4831: /a[bcd]*dcdcde/
4832: adcdcde
4833: 0: adcdcde
4834:
4835: /a[bcd]+dcdcde/
4836: *** Failers
4837: No match
4838: abcde
4839: No match
4840: adcdcde
4841: No match
4842:
4843: /(ab|a)b*c/
4844: abc
4845: 0: abc
4846:
4847: /((a)(b)c)(d)/
4848: abcd
4849: 0: abcd
4850:
4851: /[a-zA-Z_][a-zA-Z0-9_]*/
4852: alpha
4853: 0: alpha
4854:
4855: /^a(bc+|b[eh])g|.h$/
4856: abh
4857: 0: bh
4858:
4859: /(bc+d$|ef*g.|h?i(j|k))/
4860: effgz
4861: 0: effgz
4862: ij
4863: 0: ij
4864: reffgz
4865: 0: effgz
4866: *** Failers
4867: No match
4868: effg
4869: No match
4870: bcdd
4871: No match
4872:
4873: /((((((((((a))))))))))/
4874: a
4875: 0: a
4876:
4877: /(((((((((a)))))))))/
4878: a
4879: 0: a
4880:
4881: /multiple words of text/
4882: *** Failers
4883: No match
4884: aa
4885: No match
4886: uh-uh
4887: No match
4888:
4889: /multiple words/
4890: multiple words, yeah
4891: 0: multiple words
4892:
4893: /(.*)c(.*)/
4894: abcde
4895: 0: abcde
4896:
4897: /\((.*), (.*)\)/
4898: (a, b)
4899: 0: (a, b)
4900:
4901: /[k]/
4902:
4903: /abcd/
4904: abcd
4905: 0: abcd
4906:
4907: /a(bc)d/
4908: abcd
4909: 0: abcd
4910:
4911: /a[-]?c/
4912: ac
4913: 0: ac
4914:
4915: /abc/i
4916: ABC
4917: 0: ABC
4918: XABCY
4919: 0: ABC
4920: ABABC
4921: 0: ABC
4922: *** Failers
4923: No match
4924: aaxabxbaxbbx
4925: No match
4926: XBC
4927: No match
4928: AXC
4929: No match
4930: ABX
4931: No match
4932:
4933: /ab*c/i
4934: ABC
4935: 0: ABC
4936:
4937: /ab*bc/i
4938: ABC
4939: 0: ABC
4940: ABBC
4941: 0: ABBC
4942:
4943: /ab*?bc/i
4944: ABBBBC
4945: 0: ABBBBC
4946:
4947: /ab{0,}?bc/i
4948: ABBBBC
4949: 0: ABBBBC
4950:
4951: /ab+?bc/i
4952: ABBC
4953: 0: ABBC
4954:
4955: /ab+bc/i
4956: *** Failers
4957: No match
4958: ABC
4959: No match
4960: ABQ
4961: No match
4962:
4963: /ab{1,}bc/i
4964:
4965: /ab+bc/i
4966: ABBBBC
4967: 0: ABBBBC
4968:
4969: /ab{1,}?bc/i
4970: ABBBBC
4971: 0: ABBBBC
4972:
4973: /ab{1,3}?bc/i
4974: ABBBBC
4975: 0: ABBBBC
4976:
4977: /ab{3,4}?bc/i
4978: ABBBBC
4979: 0: ABBBBC
4980:
4981: /ab{4,5}?bc/i
4982: *** Failers
4983: No match
4984: ABQ
4985: No match
4986: ABBBBC
4987: No match
4988:
4989: /ab??bc/i
4990: ABBC
4991: 0: ABBC
4992: ABC
4993: 0: ABC
4994:
4995: /ab{0,1}?bc/i
4996: ABC
4997: 0: ABC
4998:
4999: /ab??bc/i
5000:
5001: /ab??c/i
5002: ABC
5003: 0: ABC
5004:
5005: /ab{0,1}?c/i
5006: ABC
5007: 0: ABC
5008:
5009: /^abc$/i
5010: ABC
5011: 0: ABC
5012: *** Failers
5013: No match
5014: ABBBBC
5015: No match
5016: ABCC
5017: No match
5018:
5019: /^abc/i
5020: ABCC
5021: 0: ABC
5022:
5023: /^abc$/i
5024:
5025: /abc$/i
5026: AABC
5027: 0: ABC
5028:
5029: /^/i
5030: ABC
5031: 0:
5032:
5033: /$/i
5034: ABC
5035: 0:
5036:
5037: /a.c/i
5038: ABC
5039: 0: ABC
5040: AXC
5041: 0: AXC
5042:
5043: /a.*?c/i
5044: AXYZC
5045: 0: AXYZC
5046:
5047: /a.*c/i
5048: *** Failers
5049: No match
5050: AABC
5051: 0: AABC
5052: AXYZD
5053: No match
5054:
5055: /a[bc]d/i
5056: ABD
5057: 0: ABD
5058:
5059: /a[b-d]e/i
5060: ACE
5061: 0: ACE
5062: *** Failers
5063: No match
5064: ABC
5065: No match
5066: ABD
5067: No match
5068:
5069: /a[b-d]/i
5070: AAC
5071: 0: AC
5072:
5073: /a[-b]/i
5074: A-
5075: 0: A-
1.1 misho 5076:
1.1.1.2 misho 5077: /a[b-]/i
5078: A-
5079: 0: A-
5080:
5081: /a]/i
5082: A]
5083: 0: A]
5084:
5085: /a[]]b/i
5086: A]B
5087: 0: A]B
5088:
5089: /a[^bc]d/i
5090: AED
5091: 0: AED
5092:
5093: /a[^-b]c/i
5094: ADC
5095: 0: ADC
5096: *** Failers
5097: No match
5098: ABD
5099: No match
5100: A-C
5101: No match
5102:
5103: /a[^]b]c/i
5104: ADC
5105: 0: ADC
5106:
5107: /ab|cd/i
5108: ABC
5109: 0: AB
5110: ABCD
5111: 0: AB
5112:
5113: /()ef/i
5114: DEF
5115: 0: EF
5116:
5117: /$b/i
5118: *** Failers
5119: No match
5120: A]C
5121: No match
5122: B
5123: No match
5124:
5125: /a\(b/i
5126: A(B
5127: 0: A(B
5128:
5129: /a\(*b/i
5130: AB
5131: 0: AB
5132: A((B
5133: 0: A((B
5134:
5135: /a\\b/i
5136: A\B
5137: No match
5138:
5139: /((a))/i
5140: ABC
5141: 0: A
5142:
5143: /(a)b(c)/i
5144: ABC
5145: 0: ABC
5146:
5147: /a+b+c/i
5148: AABBABC
5149: 0: ABC
5150:
5151: /a{1,}b{1,}c/i
5152: AABBABC
5153: 0: ABC
5154:
5155: /a.+?c/i
5156: ABCABC
5157: 0: ABCABC
5158: 1: ABC
5159:
5160: /a.*?c/i
5161: ABCABC
5162: 0: ABCABC
5163: 1: ABC
5164:
5165: /a.{0,5}?c/i
5166: ABCABC
5167: 0: ABCABC
5168: 1: ABC
5169:
5170: /(a+|b)*/i
5171: AB
5172: 0: AB
5173: 1: A
5174: 2:
5175:
5176: /(a+|b){0,}/i
5177: AB
5178: 0: AB
5179: 1: A
5180: 2:
5181:
5182: /(a+|b)+/i
5183: AB
5184: 0: AB
5185: 1: A
5186:
5187: /(a+|b){1,}/i
5188: AB
5189: 0: AB
5190: 1: A
5191:
5192: /(a+|b)?/i
5193: AB
5194: 0: A
5195: 1:
5196:
5197: /(a+|b){0,1}/i
5198: AB
5199: 0: A
5200: 1:
5201:
5202: /(a+|b){0,1}?/i
5203: AB
5204: 0: A
5205: 1:
5206:
5207: /[^ab]*/i
5208: CDE
5209: 0: CDE
5210:
5211: /abc/i
5212:
5213: /a*/i
5214:
5215:
5216: /([abc])*d/i
5217: ABBBCD
5218: 0: ABBBCD
5219:
5220: /([abc])*bcd/i
5221: ABCD
5222: 0: ABCD
5223:
5224: /a|b|c|d|e/i
5225: E
5226: 0: E
5227:
5228: /(a|b|c|d|e)f/i
5229: EF
5230: 0: EF
5231:
5232: /abcd*efg/i
5233: ABCDEFG
5234: 0: ABCDEFG
5235:
5236: /ab*/i
5237: XABYABBBZ
5238: 0: AB
5239: XAYABBBZ
5240: 0: A
5241:
5242: /(ab|cd)e/i
5243: ABCDE
5244: 0: CDE
5245:
5246: /[abhgefdc]ij/i
5247: HIJ
5248: 0: HIJ
5249:
5250: /^(ab|cd)e/i
5251: ABCDE
5252: No match
5253:
5254: /(abc|)ef/i
5255: ABCDEF
5256: 0: EF
5257:
5258: /(a|b)c*d/i
5259: ABCD
5260: 0: BCD
5261:
5262: /(ab|ab*)bc/i
5263: ABC
5264: 0: ABC
5265:
5266: /a([bc]*)c*/i
5267: ABC
5268: 0: ABC
1.1.1.5 ! misho 5269: 1: A
1.1.1.2 misho 5270:
5271: /a([bc]*)(c*d)/i
5272: ABCD
5273: 0: ABCD
5274:
5275: /a([bc]+)(c*d)/i
5276: ABCD
5277: 0: ABCD
5278:
5279: /a([bc]*)(c+d)/i
5280: ABCD
5281: 0: ABCD
5282:
5283: /a[bcd]*dcdcde/i
5284: ADCDCDE
5285: 0: ADCDCDE
5286:
5287: /a[bcd]+dcdcde/i
5288:
5289: /(ab|a)b*c/i
5290: ABC
5291: 0: ABC
5292:
5293: /((a)(b)c)(d)/i
5294: ABCD
5295: 0: ABCD
5296:
5297: /[a-zA-Z_][a-zA-Z0-9_]*/i
5298: ALPHA
5299: 0: ALPHA
5300:
5301: /^a(bc+|b[eh])g|.h$/i
5302: ABH
5303: 0: BH
5304:
5305: /(bc+d$|ef*g.|h?i(j|k))/i
5306: EFFGZ
5307: 0: EFFGZ
5308: IJ
5309: 0: IJ
5310: REFFGZ
5311: 0: EFFGZ
5312: *** Failers
5313: No match
5314: ADCDCDE
5315: No match
5316: EFFG
5317: No match
5318: BCDD
5319: No match
5320:
5321: /((((((((((a))))))))))/i
5322: A
5323: 0: A
5324:
5325: /(((((((((a)))))))))/i
5326: A
5327: 0: A
5328:
5329: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
5330: A
5331: 0: A
5332:
5333: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
5334: C
5335: 0: C
5336:
5337: /multiple words of text/i
5338: *** Failers
5339: No match
5340: AA
5341: No match
5342: UH-UH
5343: No match
5344:
5345: /multiple words/i
5346: MULTIPLE WORDS, YEAH
5347: 0: MULTIPLE WORDS
5348:
5349: /(.*)c(.*)/i
5350: ABCDE
5351: 0: ABCDE
5352:
5353: /\((.*), (.*)\)/i
5354: (A, B)
5355: 0: (A, B)
5356:
5357: /[k]/i
5358:
5359: /abcd/i
5360: ABCD
5361: 0: ABCD
5362:
5363: /a(bc)d/i
5364: ABCD
5365: 0: ABCD
5366:
5367: /a[-]?c/i
5368: AC
5369: 0: AC
5370:
5371: /a(?!b)./
5372: abad
5373: 0: ad
5374:
5375: /a(?=d)./
5376: abad
5377: 0: ad
5378:
5379: /a(?=c|d)./
5380: abad
5381: 0: ad
5382:
5383: /a(?:b|c|d)(.)/
5384: ace
5385: 0: ace
5386:
5387: /a(?:b|c|d)*(.)/
5388: ace
5389: 0: ace
5390: 1: ac
5391:
5392: /a(?:b|c|d)+?(.)/
5393: ace
5394: 0: ace
5395: acdbcdbe
5396: 0: acdbcdbe
5397: 1: acdbcdb
5398: 2: acdbcd
5399: 3: acdbc
5400: 4: acdb
5401: 5: acd
5402:
5403: /a(?:b|c|d)+(.)/
5404: acdbcdbe
5405: 0: acdbcdbe
5406: 1: acdbcdb
5407: 2: acdbcd
5408: 3: acdbc
5409: 4: acdb
5410: 5: acd
5411:
5412: /a(?:b|c|d){2}(.)/
5413: acdbcdbe
5414: 0: acdb
5415:
5416: /a(?:b|c|d){4,5}(.)/
5417: acdbcdbe
5418: 0: acdbcdb
5419: 1: acdbcd
5420:
5421: /a(?:b|c|d){4,5}?(.)/
5422: acdbcdbe
5423: 0: acdbcdb
5424: 1: acdbcd
5425:
5426: /((foo)|(bar))*/
5427: foobar
5428: 0: foobar
5429: 1: foo
5430: 2:
5431:
5432: /a(?:b|c|d){6,7}(.)/
5433: acdbcdbe
5434: 0: acdbcdbe
5435:
5436: /a(?:b|c|d){6,7}?(.)/
5437: acdbcdbe
5438: 0: acdbcdbe
5439:
5440: /a(?:b|c|d){5,6}(.)/
5441: acdbcdbe
5442: 0: acdbcdbe
5443: 1: acdbcdb
5444:
5445: /a(?:b|c|d){5,6}?(.)/
5446: acdbcdbe
5447: 0: acdbcdbe
5448: 1: acdbcdb
5449:
5450: /a(?:b|c|d){5,7}(.)/
5451: acdbcdbe
5452: 0: acdbcdbe
5453: 1: acdbcdb
5454:
5455: /a(?:b|c|d){5,7}?(.)/
5456: acdbcdbe
5457: 0: acdbcdbe
5458: 1: acdbcdb
5459:
5460: /a(?:b|(c|e){1,2}?|d)+?(.)/
5461: ace
5462: 0: ace
5463:
5464: /^(.+)?B/
5465: AB
5466: 0: AB
5467:
5468: /^([^a-z])|(\^)$/
5469: .
5470: 0: .
5471:
5472: /^[<>]&/
5473: <&OUT
5474: 0: <&
5475:
5476: /(?:(f)(o)(o)|(b)(a)(r))*/
5477: foobar
5478: 0: foobar
5479: 1: foo
5480: 2:
5481:
5482: /(?<=a)b/
5483: ab
5484: 0: b
5485: *** Failers
5486: No match
5487: cb
5488: No match
5489: b
5490: No match
5491:
5492: /(?<!c)b/
5493: ab
5494: 0: b
5495: b
5496: 0: b
5497: b
5498: 0: b
5499:
5500: /(?:..)*a/
5501: aba
5502: 0: aba
5503: 1: a
5504:
5505: /(?:..)*?a/
5506: aba
5507: 0: aba
5508: 1: a
5509:
5510: /^(){3,5}/
5511: abc
5512: 0:
5513:
5514: /^(a+)*ax/
5515: aax
5516: 0: aax
5517:
5518: /^((a|b)+)*ax/
5519: aax
5520: 0: aax
5521:
5522: /^((a|bc)+)*ax/
5523: aax
5524: 0: aax
5525:
5526: /(a|x)*ab/
5527: cab
5528: 0: ab
5529:
5530: /(a)*ab/
5531: cab
5532: 0: ab
5533:
5534: /(?:(?i)a)b/
5535: ab
5536: 0: ab
5537:
5538: /((?i)a)b/
5539: ab
5540: 0: ab
5541:
5542: /(?:(?i)a)b/
5543: Ab
5544: 0: Ab
5545:
5546: /((?i)a)b/
5547: Ab
5548: 0: Ab
5549:
5550: /(?:(?i)a)b/
5551: *** Failers
5552: No match
5553: cb
5554: No match
5555: aB
5556: No match
5557:
5558: /((?i)a)b/
5559:
5560: /(?i:a)b/
5561: ab
5562: 0: ab
5563:
5564: /((?i:a))b/
5565: ab
5566: 0: ab
5567:
5568: /(?i:a)b/
5569: Ab
5570: 0: Ab
5571:
5572: /((?i:a))b/
5573: Ab
5574: 0: Ab
5575:
5576: /(?i:a)b/
5577: *** Failers
5578: No match
5579: aB
5580: No match
5581: aB
5582: No match
5583:
5584: /((?i:a))b/
5585:
5586: /(?:(?-i)a)b/i
5587: ab
5588: 0: ab
5589:
5590: /((?-i)a)b/i
5591: ab
5592: 0: ab
5593:
5594: /(?:(?-i)a)b/i
5595: aB
5596: 0: aB
5597:
5598: /((?-i)a)b/i
5599: aB
5600: 0: aB
5601:
5602: /(?:(?-i)a)b/i
5603: *** Failers
5604: No match
5605: aB
5606: 0: aB
5607: Ab
5608: No match
5609:
5610: /((?-i)a)b/i
5611:
5612: /(?:(?-i)a)b/i
5613: aB
5614: 0: aB
5615:
5616: /((?-i)a)b/i
5617: aB
5618: 0: aB
5619:
5620: /(?:(?-i)a)b/i
5621: *** Failers
5622: No match
5623: Ab
5624: No match
5625: AB
5626: No match
5627:
5628: /((?-i)a)b/i
5629:
5630: /(?-i:a)b/i
5631: ab
5632: 0: ab
5633:
5634: /((?-i:a))b/i
5635: ab
5636: 0: ab
5637:
5638: /(?-i:a)b/i
5639: aB
5640: 0: aB
5641:
5642: /((?-i:a))b/i
5643: aB
5644: 0: aB
5645:
5646: /(?-i:a)b/i
5647: *** Failers
5648: No match
5649: AB
5650: No match
5651: Ab
5652: No match
5653:
5654: /((?-i:a))b/i
5655:
5656: /(?-i:a)b/i
5657: aB
5658: 0: aB
5659:
5660: /((?-i:a))b/i
5661: aB
5662: 0: aB
5663:
5664: /(?-i:a)b/i
5665: *** Failers
5666: No match
5667: Ab
5668: No match
5669: AB
5670: No match
5671:
5672: /((?-i:a))b/i
5673:
5674: /((?-i:a.))b/i
5675: *** Failers
5676: No match
5677: AB
5678: No match
5679: a\nB
5680: No match
5681:
5682: /((?s-i:a.))b/i
5683: a\nB
5684: 0: a\x0aB
5685:
5686: /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
5687: cabbbb
5688: 0: cabbbb
5689:
5690: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
5691: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5692: 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5693:
5694: /foo\w*\d{4}baz/
5695: foobar1234baz
5696: 0: foobar1234baz
5697:
5698: /x(~~)*(?:(?:F)?)?/
5699: x~~
5700: 0: x~~
5701: 1: x
5702:
5703: /^a(?#xxx){3}c/
5704: aaac
5705: 0: aaac
5706:
5707: /^a (?#xxx) (?#yyy) {3}c/x
5708: aaac
5709: 0: aaac
5710:
5711: /(?<![cd])b/
5712: *** Failers
5713: No match
5714: B\nB
5715: No match
5716: dbcb
5717: No match
5718:
5719: /(?<![cd])[ab]/
5720: dbaacb
5721: 0: a
5722:
5723: /(?<!(c|d))b/
5724:
5725: /(?<!(c|d))[ab]/
5726: dbaacb
5727: 0: a
5728:
5729: /(?<!cd)[ab]/
5730: cdaccb
5731: 0: b
5732:
5733: /^(?:a?b?)*$/
5734: *** Failers
5735: No match
5736: dbcb
5737: No match
5738: a--
5739: No match
5740:
5741: /((?s)^a(.))((?m)^b$)/
5742: a\nb\nc\n
5743: 0: a\x0ab
5744:
5745: /((?m)^b$)/
5746: a\nb\nc\n
5747: 0: b
5748:
5749: /(?m)^b/
5750: a\nb\n
5751: 0: b
5752:
5753: /(?m)^(b)/
5754: a\nb\n
5755: 0: b
5756:
5757: /((?m)^b)/
5758: a\nb\n
5759: 0: b
5760:
5761: /\n((?m)^b)/
5762: a\nb\n
5763: 0: \x0ab
5764:
5765: /((?s).)c(?!.)/
5766: a\nb\nc\n
5767: 0: \x0ac
5768: a\nb\nc\n
5769: 0: \x0ac
5770:
5771: /((?s)b.)c(?!.)/
5772: a\nb\nc\n
5773: 0: b\x0ac
5774: a\nb\nc\n
5775: 0: b\x0ac
5776:
5777: /^b/
5778:
5779: /()^b/
5780: *** Failers
5781: No match
5782: a\nb\nc\n
5783: No match
5784: a\nb\nc\n
5785: No match
5786:
5787: /((?m)^b)/
5788: a\nb\nc\n
5789: 0: b
5790:
5791: /(?(?!a)a|b)/
5792:
5793: /(?(?!a)b|a)/
5794: a
5795: 0: a
5796:
5797: /(?(?=a)b|a)/
5798: *** Failers
5799: No match
5800: a
5801: No match
5802: a
5803: No match
5804:
5805: /(?(?=a)a|b)/
5806: a
5807: 0: a
5808:
5809: /(\w+:)+/
5810: one:
5811: 0: one:
5812:
5813: /$(?<=^(a))/
5814: a
5815: 0:
5816:
5817: /([\w:]+::)?(\w+)$/
5818: abcd
5819: 0: abcd
5820: xy:z:::abcd
5821: 0: xy:z:::abcd
5822:
5823: /^[^bcd]*(c+)/
5824: aexycd
5825: 0: aexyc
5826:
5827: /(a*)b+/
5828: caab
5829: 0: aab
5830:
5831: /([\w:]+::)?(\w+)$/
5832: abcd
5833: 0: abcd
5834: xy:z:::abcd
5835: 0: xy:z:::abcd
5836: *** Failers
5837: 0: Failers
5838: abcd:
5839: No match
5840: abcd:
5841: No match
5842:
5843: /^[^bcd]*(c+)/
5844: aexycd
5845: 0: aexyc
5846:
5847: /(>a+)ab/
5848:
5849: /(?>a+)b/
5850: aaab
5851: 0: aaab
5852:
5853: /([[:]+)/
5854: a:[b]:
5855: 0: :[
5856:
5857: /([[=]+)/
5858: a=[b]=
5859: 0: =[
5860:
5861: /([[.]+)/
5862: a.[b].
5863: 0: .[
5864:
5865: /((?>a+)b)/
5866: aaab
5867: 0: aaab
5868:
5869: /(?>(a+))b/
5870: aaab
5871: 0: aaab
5872:
5873: /((?>[^()]+)|\([^()]*\))+/
5874: ((abc(ade)ufh()()x
5875: 0: abc(ade)ufh()()x
5876: 1: abc(ade)ufh()()
5877: 2: abc(ade)ufh()
5878: 3: abc(ade)ufh
5879: 4: abc(ade)
5880: 5: abc
5881:
5882: /a\Z/
5883: *** Failers
5884: No match
5885: aaab
5886: No match
5887: a\nb\n
5888: No match
5889:
5890: /b\Z/
5891: a\nb\n
5892: 0: b
1.1 misho 5893:
1.1.1.2 misho 5894: /b\z/
5895:
5896: /b\Z/
5897: a\nb
5898: 0: b
1.1 misho 5899:
1.1.1.2 misho 5900: /b\z/
5901: a\nb
5902: 0: b
5903: *** Failers
5904: No match
5905:
5906: /(?>.*)(?<=(abcd|wxyz))/
5907: alphabetabcd
5908: 0: alphabetabcd
5909: endingwxyz
5910: 0: endingwxyz
5911: *** Failers
5912: No match
5913: a rather long string that doesn't end with one of them
1.1 misho 5914: No match
5915:
1.1.1.2 misho 5916: /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
5917: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5918: 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5919: word cat dog elephant mussel cow horse canary baboon snake shark
5920: No match
5921:
5922: /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
5923: word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
1.1 misho 5924: No match
5925:
1.1.1.2 misho 5926: /(?<=\d{3}(?!999))foo/
5927: 999foo
5928: 0: foo
5929: 123999foo
5930: 0: foo
5931: *** Failers
5932: No match
5933: 123abcfoo
5934: No match
5935:
5936: /(?<=(?!...999)\d{3})foo/
5937: 999foo
5938: 0: foo
5939: 123999foo
5940: 0: foo
5941: *** Failers
5942: No match
5943: 123abcfoo
1.1 misho 5944: No match
5945:
1.1.1.2 misho 5946: /(?<=\d{3}(?!999)...)foo/
5947: 123abcfoo
5948: 0: foo
5949: 123456foo
5950: 0: foo
5951: *** Failers
1.1 misho 5952: No match
1.1.1.2 misho 5953: 123999foo
5954: No match
5955:
5956: /(?<=\d{3}...)(?<!999)foo/
5957: 123abcfoo
5958: 0: foo
5959: 123456foo
5960: 0: foo
5961: *** Failers
5962: No match
5963: 123999foo
1.1 misho 5964: No match
5965:
1.1.1.2 misho 5966: /((Z)+|A)*/
5967: ZABCDEFG
5968: 0: ZA
5969: 1: Z
5970: 2:
5971:
5972: /(Z()|A)*/
5973: ZABCDEFG
5974: 0: ZA
5975: 1: Z
5976: 2:
5977:
5978: /(Z(())|A)*/
5979: ZABCDEFG
5980: 0: ZA
5981: 1: Z
5982: 2:
5983:
5984: /((?>Z)+|A)*/
5985: ZABCDEFG
5986: 0: ZA
5987: 1: Z
5988: 2:
5989:
5990: /((?>)+|A)*/
5991: ZABCDEFG
1.1 misho 5992: 0:
1.1.1.2 misho 5993:
5994: /a*/g
5995: abbab
1.1 misho 5996: 0: a
5997: 0:
1.1.1.2 misho 5998: 0:
1.1 misho 5999: 0: a
6000: 0:
6001: 0:
1.1.1.2 misho 6002:
6003: /^[\d-a]/
6004: abcde
1.1 misho 6005: 0: a
1.1.1.2 misho 6006: -things
6007: 0: -
6008: 0digit
6009: 0: 0
6010: *** Failers
6011: No match
6012: bcdef
6013: No match
6014:
6015: /[[:space:]]+/
6016: > \x09\x0a\x0c\x0d\x0b<
6017: 0: \x09\x0a\x0c\x0d\x0b
6018:
6019: /[[:blank:]]+/
6020: > \x09\x0a\x0c\x0d\x0b<
6021: 0: \x09
6022:
6023: /[\s]+/
6024: > \x09\x0a\x0c\x0d\x0b<
1.1.1.5 ! misho 6025: 0: \x09\x0a\x0c\x0d\x0b
1.1.1.2 misho 6026:
6027: /\s+/
6028: > \x09\x0a\x0c\x0d\x0b<
1.1.1.5 ! misho 6029: 0: \x09\x0a\x0c\x0d\x0b
1.1.1.2 misho 6030:
6031: /ab/x
6032: ab
1.1.1.5 ! misho 6033: 0: ab
1.1.1.2 misho 6034:
6035: /(?!\A)x/m
6036: a\nxb\n
6037: 0: x
6038:
6039: /(?!^)x/m
6040: a\nxb\n
6041: No match
6042:
6043: /abc\Qabc\Eabc/
6044: abcabcabc
6045: 0: abcabcabc
6046:
6047: /abc\Q(*+|\Eabc/
6048: abc(*+|abc
6049: 0: abc(*+|abc
6050:
6051: / abc\Q abc\Eabc/x
6052: abc abcabc
6053: 0: abc abcabc
6054: *** Failers
6055: No match
6056: abcabcabc
6057: No match
6058:
6059: /abc#comment
6060: \Q#not comment
6061: literal\E/x
6062: abc#not comment\n literal
6063: 0: abc#not comment\x0a literal
6064:
6065: /abc#comment
6066: \Q#not comment
6067: literal/x
6068: abc#not comment\n literal
6069: 0: abc#not comment\x0a literal
6070:
6071: /abc#comment
6072: \Q#not comment
6073: literal\E #more comment
6074: /x
6075: abc#not comment\n literal
6076: 0: abc#not comment\x0a literal
6077:
6078: /abc#comment
6079: \Q#not comment
6080: literal\E #more comment/x
6081: abc#not comment\n literal
6082: 0: abc#not comment\x0a literal
6083:
6084: /\Qabc\$xyz\E/
6085: abc\\\$xyz
6086: 0: abc\$xyz
6087:
6088: /\Qabc\E\$\Qxyz\E/
6089: abc\$xyz
6090: 0: abc$xyz
6091:
6092: /\Gabc/
6093: abc
6094: 0: abc
6095: *** Failers
6096: No match
6097: xyzabc
6098: No match
6099:
6100: /\Gabc./g
6101: abc1abc2xyzabc3
6102: 0: abc1
6103: 0: abc2
6104:
6105: /abc./g
6106: abc1abc2xyzabc3
6107: 0: abc1
6108: 0: abc2
6109: 0: abc3
6110:
6111: /a(?x: b c )d/
6112: XabcdY
6113: 0: abcd
6114: *** Failers
6115: No match
6116: Xa b c d Y
6117: No match
6118:
6119: /((?x)x y z | a b c)/
6120: XabcY
6121: 0: abc
6122: AxyzB
6123: 0: xyz
6124:
6125: /(?i)AB(?-i)C/
6126: XabCY
6127: 0: abC
6128: *** Failers
6129: No match
6130: XabcY
6131: No match
6132:
6133: /((?i)AB(?-i)C|D)E/
6134: abCE
6135: 0: abCE
6136: DE
6137: 0: DE
6138: *** Failers
6139: No match
6140: abcE
6141: No match
6142: abCe
6143: No match
6144: dE
6145: No match
6146: De
6147: No match
6148:
6149: /[z\Qa-d]\E]/
6150: z
6151: 0: z
6152: a
6153: 0: a
6154: -
6155: 0: -
6156: d
6157: 0: d
6158: ]
6159: 0: ]
6160: *** Failers
6161: 0: a
6162: b
6163: No match
6164:
6165: /[\z\C]/
6166: z
6167: 0: z
6168: C
6169: 0: C
6170:
6171: /\M/
6172: M
6173: 0: M
6174:
6175: /(a+)*b/
6176: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6177: No match
6178:
6179: /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
6180: REGular
6181: 0: REGular
6182: regulaer
6183: 0: regulaer
6184: Regex
6185: 0: Regex
6186: regulär
6187: 0: regul\xe4r
6188:
6189: /Åæåä[à-ÿÀ-ß]+/
6190: Åæåäà
6191: 0: \xc5\xe6\xe5\xe4\xe0
6192: Åæåäÿ
6193: 0: \xc5\xe6\xe5\xe4\xff
6194: ÅæåäÀ
6195: 0: \xc5\xe6\xe5\xe4\xc0
6196: Åæåäß
6197: 0: \xc5\xe6\xe5\xe4\xdf
6198:
6199: /(?<=Z)X./
6200: \x84XAZXB
6201: 0: XB
6202:
6203: /^(?(2)a|(1)(2))+$/
6204: 123a
6205: Error -17 (backreference condition or recursion test not supported for DFA matching)
6206:
6207: /(?<=a|bbbb)c/
6208: ac
6209: 0: c
6210: bbbbc
6211: 0: c
6212:
6213: /abc/SS>testsavedregex
6214: Compiled pattern written to testsavedregex
6215: <testsavedregex
6216: Compiled pattern loaded from testsavedregex
6217: No study data
6218: abc
6219: 0: abc
6220: *** Failers
6221: No match
6222: bca
6223: No match
6224:
6225: /abc/FSS>testsavedregex
6226: Compiled pattern written to testsavedregex
6227: <testsavedregex
6228: Compiled pattern (byte-inverted) loaded from testsavedregex
6229: No study data
6230: abc
6231: 0: abc
6232: *** Failers
6233: No match
6234: bca
6235: No match
6236:
6237: /(a|b)/S>testsavedregex
6238: Compiled pattern written to testsavedregex
6239: Study data written to testsavedregex
6240: <testsavedregex
6241: Compiled pattern loaded from testsavedregex
6242: Study data loaded from testsavedregex
6243: abc
6244: 0: a
6245: *** Failers
6246: 0: a
6247: def
6248: No match
6249:
6250: /(a|b)/SF>testsavedregex
6251: Compiled pattern written to testsavedregex
6252: Study data written to testsavedregex
6253: <testsavedregex
6254: Compiled pattern (byte-inverted) loaded from testsavedregex
6255: Study data loaded from testsavedregex
6256: abc
6257: 0: a
6258: *** Failers
6259: 0: a
6260: def
6261: No match
6262:
6263: /line\nbreak/
6264: this is a line\nbreak
6265: 0: line\x0abreak
6266: line one\nthis is a line\nbreak in the second line
6267: 0: line\x0abreak
6268:
6269: /line\nbreak/f
6270: this is a line\nbreak
6271: 0: line\x0abreak
6272: ** Failers
6273: No match
6274: line one\nthis is a line\nbreak in the second line
6275: No match
6276:
6277: /line\nbreak/mf
6278: this is a line\nbreak
6279: 0: line\x0abreak
6280: ** Failers
6281: No match
6282: line one\nthis is a line\nbreak in the second line
6283: No match
6284:
6285: /1234/
6286: 123\P
6287: Partial match: 123
6288: a4\P\R
6289: No match
6290:
6291: /1234/
6292: 123\P
6293: Partial match: 123
6294: 4\P\R
6295: 0: 4
6296:
6297: /^/mg
6298: a\nb\nc\n
6299: 0:
6300: 0:
1.1 misho 6301: 0:
1.1.1.2 misho 6302: \
6303: 0:
6304:
6305: /(?<=C\n)^/mg
6306: A\nC\nC\n
6307: 0:
6308:
6309: /(?s)A?B/
6310: AB
6311: 0: AB
6312: aB
6313: 0: B
6314:
6315: /(?s)A*B/
6316: AB
6317: 0: AB
6318: aB
6319: 0: B
6320:
6321: /(?m)A?B/
6322: AB
6323: 0: AB
6324: aB
6325: 0: B
6326:
6327: /(?m)A*B/
6328: AB
6329: 0: AB
6330: aB
6331: 0: B
6332:
6333: /Content-Type\x3A[^\r\n]{6,}/
6334: Content-Type:xxxxxyyy
6335: 0: Content-Type:xxxxxyyy
6336:
6337: /Content-Type\x3A[^\r\n]{6,}z/
6338: Content-Type:xxxxxyyyz
6339: 0: Content-Type:xxxxxyyyz
6340:
6341: /Content-Type\x3A[^a]{6,}/
6342: Content-Type:xxxyyy
6343: 0: Content-Type:xxxyyy
6344:
6345: /Content-Type\x3A[^a]{6,}z/
6346: Content-Type:xxxyyyz
6347: 0: Content-Type:xxxyyyz
6348:
6349: /^abc/m
6350: xyz\nabc
6351: 0: abc
6352: xyz\nabc\<lf>
6353: 0: abc
6354: xyz\r\nabc\<lf>
6355: 0: abc
6356: xyz\rabc\<cr>
6357: 0: abc
6358: xyz\r\nabc\<crlf>
6359: 0: abc
6360: ** Failers
6361: No match
6362: xyz\nabc\<cr>
6363: No match
6364: xyz\r\nabc\<cr>
6365: No match
6366: xyz\nabc\<crlf>
6367: No match
6368: xyz\rabc\<crlf>
6369: No match
6370: xyz\rabc\<lf>
6371: No match
6372:
6373: /abc$/m<lf>
6374: xyzabc
6375: 0: abc
6376: xyzabc\n
6377: 0: abc
6378: xyzabc\npqr
6379: 0: abc
6380: xyzabc\r\<cr>
6381: 0: abc
6382: xyzabc\rpqr\<cr>
6383: 0: abc
6384: xyzabc\r\n\<crlf>
6385: 0: abc
6386: xyzabc\r\npqr\<crlf>
6387: 0: abc
6388: ** Failers
6389: No match
6390: xyzabc\r
6391: No match
6392: xyzabc\rpqr
6393: No match
6394: xyzabc\r\n
6395: No match
6396: xyzabc\r\npqr
6397: No match
6398:
6399: /^abc/m<cr>
6400: xyz\rabcdef
6401: 0: abc
6402: xyz\nabcdef\<lf>
6403: 0: abc
6404: ** Failers
6405: No match
6406: xyz\nabcdef
6407: No match
6408:
6409: /^abc/m<lf>
6410: xyz\nabcdef
6411: 0: abc
6412: xyz\rabcdef\<cr>
6413: 0: abc
6414: ** Failers
6415: No match
6416: xyz\rabcdef
6417: No match
6418:
6419: /^abc/m<crlf>
6420: xyz\r\nabcdef
6421: 0: abc
6422: xyz\rabcdef\<cr>
6423: 0: abc
6424: ** Failers
6425: No match
6426: xyz\rabcdef
6427: No match
6428:
6429: /.*/<lf>
6430: abc\ndef
6431: 0: abc
6432: abc\rdef
6433: 0: abc\x0ddef
6434: abc\r\ndef
6435: 0: abc\x0d
6436: \<cr>abc\ndef
6437: 0: abc\x0adef
6438: \<cr>abc\rdef
6439: 0: abc
6440: \<cr>abc\r\ndef
6441: 0: abc
6442: \<crlf>abc\ndef
6443: 0: abc\x0adef
6444: \<crlf>abc\rdef
6445: 0: abc\x0ddef
6446: \<crlf>abc\r\ndef
6447: 0: abc
6448:
6449: /\w+(.)(.)?def/s
6450: abc\ndef
6451: 0: abc\x0adef
6452: abc\rdef
6453: 0: abc\x0ddef
6454: abc\r\ndef
6455: 0: abc\x0d\x0adef
6456:
6457: /^\w+=.*(\\\n.*)*/
6458: abc=xyz\\\npqr
6459: 0: abc=xyz\\x0apqr
6460: 1: abc=xyz\\x0apq
6461: 2: abc=xyz\\x0ap
6462: 3: abc=xyz\\x0a
6463: 4: abc=xyz\
6464: 5: abc=xyz
6465: 6: abc=xy
6466: 7: abc=x
6467: 8: abc=
6468:
6469: /^(a()*)*/
6470: aaaa
6471: 0: aaaa
6472: 1: aaa
6473: 2: aa
6474: 3: a
6475: 4:
6476:
6477: /^(?:a(?:(?:))*)*/
6478: aaaa
6479: 0: aaaa
6480: 1: aaa
6481: 2: aa
6482: 3: a
6483: 4:
6484:
6485: /^(a()+)+/
6486: aaaa
6487: 0: aaaa
6488: 1: aaa
6489: 2: aa
6490: 3: a
6491:
6492: /^(?:a(?:(?:))+)+/
6493: aaaa
6494: 0: aaaa
6495: 1: aaa
6496: 2: aa
6497: 3: a
6498:
6499: /(a|)*\d/
6500: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6501: No match
6502: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6503: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6504:
6505: /(?>a|)*\d/
6506: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6507: No match
6508: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6509: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6510:
6511: /(?:a|)*\d/
6512: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6513: No match
6514: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6515: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
1.1 misho 6516:
1.1.1.2 misho 6517: /^a.b/<lf>
6518: a\rb
6519: 0: a\x0db
6520: a\nb\<cr>
6521: 0: a\x0ab
6522: ** Failers
6523: No match
6524: a\nb
6525: No match
6526: a\nb\<any>
6527: No match
6528: a\rb\<cr>
6529: No match
6530: a\rb\<any>
6531: No match
1.1 misho 6532:
1.1.1.2 misho 6533: /^abc./mgx<any>
6534: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1.1 misho 6535: 0: abc1
6536: 0: abc2
6537: 0: abc3
6538: 0: abc4
6539: 0: abc5
6540: 0: abc6
6541: 0: abc7
6542:
1.1.1.2 misho 6543: /abc.$/mgx<any>
6544: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
1.1 misho 6545: 0: abc1
6546: 0: abc2
6547: 0: abc3
6548: 0: abc4
6549: 0: abc5
6550: 0: abc6
6551: 0: abc9
6552:
1.1.1.2 misho 6553: /^a\Rb/<bsr_unicode>
1.1 misho 6554: a\nb
1.1.1.2 misho 6555: 0: a\x0ab
1.1 misho 6556: a\rb
1.1.1.2 misho 6557: 0: a\x0db
1.1 misho 6558: a\r\nb
1.1.1.2 misho 6559: 0: a\x0d\x0ab
1.1 misho 6560: a\x0bb
1.1.1.2 misho 6561: 0: a\x0bb
1.1 misho 6562: a\x0cb
1.1.1.2 misho 6563: 0: a\x0cb
6564: a\x85b
6565: 0: a\x85b
1.1 misho 6566: ** Failers
6567: No match
6568: a\n\rb
6569: No match
6570:
1.1.1.2 misho 6571: /^a\R*b/<bsr_unicode>
1.1 misho 6572: ab
6573: 0: ab
6574: a\nb
1.1.1.2 misho 6575: 0: a\x0ab
1.1 misho 6576: a\rb
1.1.1.2 misho 6577: 0: a\x0db
1.1 misho 6578: a\r\nb
1.1.1.2 misho 6579: 0: a\x0d\x0ab
1.1 misho 6580: a\x0bb
1.1.1.2 misho 6581: 0: a\x0bb
6582: a\x0cb
6583: 0: a\x0cb
6584: a\x85b
6585: 0: a\x85b
1.1 misho 6586: a\n\rb
1.1.1.2 misho 6587: 0: a\x0a\x0db
6588: a\n\r\x85\x0cb
6589: 0: a\x0a\x0d\x85\x0cb
1.1 misho 6590:
1.1.1.2 misho 6591: /^a\R+b/<bsr_unicode>
1.1 misho 6592: a\nb
1.1.1.2 misho 6593: 0: a\x0ab
1.1 misho 6594: a\rb
1.1.1.2 misho 6595: 0: a\x0db
1.1 misho 6596: a\r\nb
1.1.1.2 misho 6597: 0: a\x0d\x0ab
1.1 misho 6598: a\x0bb
1.1.1.2 misho 6599: 0: a\x0bb
6600: a\x0cb
6601: 0: a\x0cb
6602: a\x85b
6603: 0: a\x85b
1.1 misho 6604: a\n\rb
1.1.1.2 misho 6605: 0: a\x0a\x0db
6606: a\n\r\x85\x0cb
6607: 0: a\x0a\x0d\x85\x0cb
1.1 misho 6608: ** Failers
6609: No match
6610: ab
6611: No match
1.1.1.2 misho 6612:
6613: /^a\R{1,3}b/<bsr_unicode>
1.1 misho 6614: a\nb
1.1.1.2 misho 6615: 0: a\x0ab
1.1 misho 6616: a\n\rb
1.1.1.2 misho 6617: 0: a\x0a\x0db
6618: a\n\r\x85b
6619: 0: a\x0a\x0d\x85b
1.1 misho 6620: a\r\n\r\nb
1.1.1.2 misho 6621: 0: a\x0d\x0a\x0d\x0ab
1.1 misho 6622: a\r\n\r\n\r\nb
1.1.1.2 misho 6623: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
1.1 misho 6624: a\n\r\n\rb
1.1.1.2 misho 6625: 0: a\x0a\x0d\x0a\x0db
1.1 misho 6626: a\n\n\r\nb
1.1.1.2 misho 6627: 0: a\x0a\x0a\x0d\x0ab
6628: ** Failers
6629: No match
6630: a\n\n\n\rb
6631: No match
6632: a\r
6633: No match
6634:
6635: /^a[\R]b/<bsr_unicode>
6636: aRb
6637: 0: aRb
1.1 misho 6638: ** Failers
6639: No match
1.1.1.2 misho 6640: a\nb
6641: No match
6642:
6643: /.+foo/
6644: afoo
6645: 0: afoo
6646: ** Failers
6647: No match
6648: \r\nfoo
6649: No match
6650: \nfoo
6651: No match
6652:
6653: /.+foo/<crlf>
6654: afoo
6655: 0: afoo
6656: \nfoo
6657: 0: \x0afoo
6658: ** Failers
6659: No match
6660: \r\nfoo
6661: No match
6662:
6663: /.+foo/<any>
6664: afoo
6665: 0: afoo
6666: ** Failers
6667: No match
6668: \nfoo
6669: No match
6670: \r\nfoo
6671: No match
6672:
6673: /.+foo/s
6674: afoo
6675: 0: afoo
6676: \r\nfoo
6677: 0: \x0d\x0afoo
6678: \nfoo
6679: 0: \x0afoo
6680:
6681: /^$/mg<any>
6682: abc\r\rxyz
6683: 0:
6684: abc\n\rxyz
6685: 0:
6686: ** Failers
6687: No match
6688: abc\r\nxyz
1.1 misho 6689: No match
1.1.1.2 misho 6690:
6691: /^X/m
6692: XABC
6693: 0: X
6694: ** Failers
6695: No match
6696: XABC\B
1.1 misho 6697: No match
6698:
1.1.1.2 misho 6699: /(?m)^$/<any>g+
6700: abc\r\n\r\n
6701: 0:
6702: 0+ \x0d\x0a
6703:
6704: /(?m)^$|^\r\n/<any>g+
6705: abc\r\n\r\n
6706: 0: \x0d\x0a
6707: 0+
6708: 1:
6709:
6710: /(?m)$/<any>g+
6711: abc\r\n\r\n
6712: 0:
6713: 0+ \x0d\x0a\x0d\x0a
6714: 0:
6715: 0+ \x0d\x0a
6716: 0:
6717: 0+
6718:
6719: /(?|(abc)|(xyz))/
6720: >abc<
6721: 0: abc
6722: >xyz<
6723: 0: xyz
1.1 misho 6724:
1.1.1.2 misho 6725: /(x)(?|(abc)|(xyz))(x)/
6726: xabcx
6727: 0: xabcx
6728: xxyzx
6729: 0: xxyzx
6730:
6731: /(x)(?|(abc)(pqr)|(xyz))(x)/
6732: xabcpqrx
6733: 0: xabcpqrx
6734: xxyzx
6735: 0: xxyzx
6736:
6737: /(?|(abc)|(xyz))(?1)/
6738: abcabc
6739: 0: abcabc
6740: xyzabc
6741: 0: xyzabc
6742: ** Failers
6743: No match
6744: xyzxyz
6745: No match
6746:
6747: /\H\h\V\v/
1.1 misho 6748: X X\x0a
1.1.1.2 misho 6749: 0: X X\x0a
1.1 misho 6750: X\x09X\x0b
1.1.1.2 misho 6751: 0: X\x09X\x0b
1.1 misho 6752: ** Failers
6753: No match
1.1.1.2 misho 6754: \xa0 X\x0a
1.1 misho 6755: No match
6756:
1.1.1.2 misho 6757: /\H*\h+\V?\v{3,4}/
6758: \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
6759: 0: \x09 \xa0X\x0a\x0b\x0c\x0d
6760: \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
6761: 0: \x09 \xa0\x0a\x0b\x0c\x0d
6762: \x09\x20\xa0\x0a\x0b\x0c
6763: 0: \x09 \xa0\x0a\x0b\x0c
1.1 misho 6764: ** Failers
6765: No match
1.1.1.2 misho 6766: \x09\x20\xa0\x0a\x0b
1.1 misho 6767: No match
6768:
1.1.1.2 misho 6769: /\H{3,4}/
6770: XY ABCDE
6771: 0: ABCD
6772: XY PQR ST
6773: 0: PQR
6774:
6775: /.\h{3,4}./
6776: XY AB PQRS
6777: 0: B P
6778: 1: B
6779:
6780: /\h*X\h?\H+Y\H?Z/
6781: >XNNNYZ
6782: 0: XNNNYZ
6783: > X NYQZ
6784: 0: X NYQZ
6785: ** Failers
1.1 misho 6786: No match
1.1.1.2 misho 6787: >XYZ
1.1 misho 6788: No match
1.1.1.2 misho 6789: > X NY Z
6790: No match
6791:
6792: /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
6793: >XY\x0aZ\x0aA\x0bNN\x0c
6794: 0: XY\x0aZ\x0aA\x0bNN\x0c
6795: >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6796: 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
6797:
6798: /.+A/<crlf>
6799: \r\nA
6800: No match
6801:
6802: /\nA/<crlf>
6803: \r\nA
6804: 0: \x0aA
6805:
6806: /[\r\n]A/<crlf>
6807: \r\nA
6808: 0: \x0aA
6809:
6810: /(\r|\n)A/<crlf>
6811: \r\nA
6812: 0: \x0aA
6813:
6814: /a\Rb/I<bsr_anycrlf>
1.1 misho 6815: Capturing subpattern count = 0
1.1.1.2 misho 6816: Options: bsr_anycrlf
1.1 misho 6817: First char = 'a'
6818: Need char = 'b'
6819: a\rb
1.1.1.2 misho 6820: 0: a\x0db
1.1 misho 6821: a\nb
1.1.1.2 misho 6822: 0: a\x0ab
1.1 misho 6823: a\r\nb
1.1.1.2 misho 6824: 0: a\x0d\x0ab
1.1 misho 6825: ** Failers
6826: No match
1.1.1.2 misho 6827: a\x85b
1.1 misho 6828: No match
6829: a\x0bb
6830: No match
6831:
1.1.1.2 misho 6832: /a\Rb/I<bsr_unicode>
1.1 misho 6833: Capturing subpattern count = 0
1.1.1.2 misho 6834: Options: bsr_unicode
1.1 misho 6835: First char = 'a'
6836: Need char = 'b'
6837: a\rb
1.1.1.2 misho 6838: 0: a\x0db
1.1 misho 6839: a\nb
1.1.1.2 misho 6840: 0: a\x0ab
1.1 misho 6841: a\r\nb
1.1.1.2 misho 6842: 0: a\x0d\x0ab
6843: a\x85b
6844: 0: a\x85b
1.1 misho 6845: a\x0bb
1.1.1.2 misho 6846: 0: a\x0bb
1.1 misho 6847: ** Failers
6848: No match
1.1.1.2 misho 6849: a\x85b\<bsr_anycrlf>
1.1 misho 6850: No match
6851: a\x0bb\<bsr_anycrlf>
6852: No match
6853:
1.1.1.2 misho 6854: /a\R?b/I<bsr_anycrlf>
1.1 misho 6855: Capturing subpattern count = 0
1.1.1.2 misho 6856: Options: bsr_anycrlf
1.1 misho 6857: First char = 'a'
6858: Need char = 'b'
6859: a\rb
1.1.1.2 misho 6860: 0: a\x0db
1.1 misho 6861: a\nb
1.1.1.2 misho 6862: 0: a\x0ab
1.1 misho 6863: a\r\nb
1.1.1.2 misho 6864: 0: a\x0d\x0ab
1.1 misho 6865: ** Failers
6866: No match
1.1.1.2 misho 6867: a\x85b
1.1 misho 6868: No match
6869: a\x0bb
6870: No match
6871:
1.1.1.2 misho 6872: /a\R?b/I<bsr_unicode>
1.1 misho 6873: Capturing subpattern count = 0
1.1.1.2 misho 6874: Options: bsr_unicode
1.1 misho 6875: First char = 'a'
6876: Need char = 'b'
6877: a\rb
1.1.1.2 misho 6878: 0: a\x0db
1.1 misho 6879: a\nb
1.1.1.2 misho 6880: 0: a\x0ab
1.1 misho 6881: a\r\nb
1.1.1.2 misho 6882: 0: a\x0d\x0ab
6883: a\x85b
6884: 0: a\x85b
1.1 misho 6885: a\x0bb
1.1.1.2 misho 6886: 0: a\x0bb
1.1 misho 6887: ** Failers
6888: No match
1.1.1.2 misho 6889: a\x85b\<bsr_anycrlf>
1.1 misho 6890: No match
6891: a\x0bb\<bsr_anycrlf>
6892: No match
1.1.1.2 misho 6893:
6894: /a\R{2,4}b/I<bsr_anycrlf>
6895: Capturing subpattern count = 0
6896: Options: bsr_anycrlf
6897: First char = 'a'
6898: Need char = 'b'
6899: a\r\n\nb
6900: 0: a\x0d\x0a\x0ab
6901: a\n\r\rb
6902: 0: a\x0a\x0d\x0db
6903: a\r\n\r\n\r\n\r\nb
6904: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
6905: ** Failers
6906: No match
6907: a\x85\85b
6908: No match
6909: a\x0b\0bb
6910: No match
6911:
6912: /a\R{2,4}b/I<bsr_unicode>
6913: Capturing subpattern count = 0
6914: Options: bsr_unicode
6915: First char = 'a'
6916: Need char = 'b'
6917: a\r\rb
6918: 0: a\x0d\x0db
6919: a\n\n\nb
6920: 0: a\x0a\x0a\x0ab
6921: a\r\n\n\r\rb
6922: 0: a\x0d\x0a\x0a\x0d\x0db
6923: a\x85\85b
6924: No match
6925: a\x0b\0bb
6926: No match
6927: ** Failers
6928: No match
6929: a\r\r\r\r\rb
6930: No match
6931: a\x85\85b\<bsr_anycrlf>
6932: No match
6933: a\x0b\0bb\<bsr_anycrlf>
6934: No match
6935:
6936: /a(?!)|\wbc/
6937: abc
6938: 0: abc
6939:
6940: /a[]b/<JS>
6941: ** Failers
6942: No match
6943: ab
6944: No match
6945:
6946: /a[]+b/<JS>
6947: ** Failers
6948: No match
6949: ab
6950: No match
6951:
6952: /a[]*+b/<JS>
6953: ** Failers
6954: No match
6955: ab
6956: No match
6957:
6958: /a[^]b/<JS>
6959: aXb
6960: 0: aXb
6961: a\nb
6962: 0: a\x0ab
6963: ** Failers
6964: No match
6965: ab
6966: No match
6967:
6968: /a[^]+b/<JS>
6969: aXb
6970: 0: aXb
6971: a\nX\nXb
6972: 0: a\x0aX\x0aXb
6973: ** Failers
6974: No match
6975: ab
6976: No match
6977:
6978: /X$/E
6979: X
6980: 0: X
6981: ** Failers
6982: No match
6983: X\n
6984: No match
6985:
6986: /X$/
6987: X
1.1 misho 6988: 0: X
1.1.1.2 misho 6989: X\n
6990: 0: X
6991:
6992: /xyz/C
6993: xyz
6994: --->xyz
6995: +0 ^ x
6996: +1 ^^ y
6997: +2 ^ ^ z
6998: +3 ^ ^
6999: 0: xyz
7000: abcxyz
7001: --->abcxyz
7002: +0 ^ x
7003: +1 ^^ y
7004: +2 ^ ^ z
7005: +3 ^ ^
7006: 0: xyz
7007: abcxyz\Y
7008: --->abcxyz
7009: +0 ^ x
7010: +0 ^ x
7011: +0 ^ x
7012: +0 ^ x
7013: +1 ^^ y
7014: +2 ^ ^ z
7015: +3 ^ ^
7016: 0: xyz
7017: ** Failers
7018: No match
7019: abc
7020: No match
7021: abc\Y
7022: --->abc
7023: +0 ^ x
7024: +0 ^ x
7025: +0 ^ x
7026: +0 ^ x
7027: No match
7028: abcxypqr
7029: No match
7030: abcxypqr\Y
7031: --->abcxypqr
7032: +0 ^ x
7033: +0 ^ x
7034: +0 ^ x
7035: +0 ^ x
7036: +1 ^^ y
7037: +2 ^ ^ z
7038: +0 ^ x
7039: +0 ^ x
7040: +0 ^ x
7041: +0 ^ x
7042: +0 ^ x
7043: No match
7044:
7045: /(*NO_START_OPT)xyz/C
7046: abcxyz
7047: --->abcxyz
7048: +15 ^ x
7049: +15 ^ x
7050: +15 ^ x
7051: +15 ^ x
7052: +16 ^^ y
7053: +17 ^ ^ z
7054: +18 ^ ^
7055: 0: xyz
7056:
7057: /(?C)ab/
7058: ab
7059: --->ab
7060: 0 ^ a
7061: 0: ab
7062: \C-ab
7063: 0: ab
7064:
7065: /ab/C
7066: ab
7067: --->ab
7068: +0 ^ a
7069: +1 ^^ b
7070: +2 ^ ^
7071: 0: ab
7072: \C-ab
7073: 0: ab
7074:
7075: /^"((?(?=[a])[^"])|b)*"$/C
7076: "ab"
7077: --->"ab"
7078: +0 ^ ^
7079: +1 ^ "
7080: +2 ^^ ((?(?=[a])[^"])|b)*
7081: +21 ^^ "
7082: +3 ^^ (?(?=[a])[^"])
7083: +18 ^^ b
7084: +5 ^^ (?=[a])
7085: +8 ^ [a]
7086: +11 ^^ )
7087: +12 ^^ [^"]
7088: +16 ^ ^ )
7089: +17 ^ ^ |
7090: +21 ^ ^ "
7091: +3 ^ ^ (?(?=[a])[^"])
7092: +18 ^ ^ b
7093: +5 ^ ^ (?=[a])
7094: +8 ^ [a]
7095: +19 ^ ^ )
7096: +21 ^ ^ "
7097: +3 ^ ^ (?(?=[a])[^"])
7098: +18 ^ ^ b
7099: +5 ^ ^ (?=[a])
7100: +8 ^ [a]
7101: +17 ^ ^ |
7102: +22 ^ ^ $
7103: +23 ^ ^
7104: 0: "ab"
7105: \C-"ab"
7106: 0: "ab"
7107:
7108: /\d+X|9+Y/
7109: ++++123999\P
7110: Partial match: 123999
7111: ++++123999Y\P
7112: 0: 999Y
7113:
7114: /Z(*F)/
7115: Z\P
7116: No match
7117: ZA\P
7118: No match
7119:
7120: /Z(?!)/
7121: Z\P
7122: No match
7123: ZA\P
7124: No match
7125:
7126: /dog(sbody)?/
7127: dogs\P
7128: 0: dog
7129: dogs\P\P
7130: Partial match: dogs
7131:
7132: /dog(sbody)??/
7133: dogs\P
7134: 0: dog
7135: dogs\P\P
7136: Partial match: dogs
7137:
7138: /dog|dogsbody/
7139: dogs\P
7140: 0: dog
7141: dogs\P\P
7142: Partial match: dogs
7143:
7144: /dogsbody|dog/
7145: dogs\P
7146: 0: dog
7147: dogs\P\P
7148: Partial match: dogs
7149:
7150: /Z(*F)Q|ZXY/
7151: Z\P
7152: Partial match: Z
7153: ZA\P
7154: No match
7155: X\P
7156: No match
7157:
7158: /\bthe cat\b/
7159: the cat\P
7160: 0: the cat
7161: the cat\P\P
7162: Partial match: the cat
7163:
7164: /dog(sbody)?/
7165: dogs\D\P
7166: 0: dog
7167: body\D\R
7168: 0: body
7169:
7170: /dog(sbody)?/
7171: dogs\D\P\P
7172: Partial match: dogs
7173: body\D\R
7174: 0: body
7175:
7176: /abc/
7177: abc\P
7178: 0: abc
7179: abc\P\P
7180: 0: abc
7181:
7182: /abc\K123/
7183: xyzabc123pqr
7184: Error -16 (item unsupported for DFA matching)
7185:
7186: /(?<=abc)123/
7187: xyzabc123pqr
7188: 0: 123
7189: xyzabc12\P
1.1.1.4 misho 7190: Partial match at offset 6: abc12
1.1.1.2 misho 7191: xyzabc12\P\P
1.1.1.4 misho 7192: Partial match at offset 6: abc12
1.1.1.2 misho 7193:
7194: /\babc\b/
7195: +++abc+++
7196: 0: abc
7197: +++ab\P
1.1.1.4 misho 7198: Partial match at offset 3: +ab
1.1.1.2 misho 7199: +++ab\P\P
1.1.1.4 misho 7200: Partial match at offset 3: +ab
1.1.1.2 misho 7201:
7202: /(?=C)/g+
7203: ABCDECBA
7204: 0:
7205: 0+ CDECBA
7206: 0:
7207: 0+ CBA
7208:
7209: /(abc|def|xyz)/I
7210: Capturing subpattern count = 1
7211: No options
7212: No first char
7213: No need char
7214: terhjk;abcdaadsfe
7215: 0: abc
7216: the quick xyz brown fox
7217: 0: xyz
7218: \Yterhjk;abcdaadsfe
7219: 0: abc
7220: \Ythe quick xyz brown fox
7221: 0: xyz
7222: ** Failers
7223: No match
7224: thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7225: No match
7226: \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7227: No match
7228:
7229: /(abc|def|xyz)/SI
7230: Capturing subpattern count = 1
7231: No options
7232: No first char
7233: No need char
7234: Subject length lower bound = 3
7235: Starting byte set: a d x
7236: terhjk;abcdaadsfe
7237: 0: abc
7238: the quick xyz brown fox
7239: 0: xyz
7240: \Yterhjk;abcdaadsfe
7241: 0: abc
7242: \Ythe quick xyz brown fox
7243: 0: xyz
7244: ** Failers
7245: No match
7246: thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7247: No match
7248: \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
7249: No match
1.1 misho 7250:
1.1.1.2 misho 7251: /abcd*/+
1.1 misho 7252: xxxxabcd\P
7253: 0: abcd
1.1.1.2 misho 7254: 0+
1.1 misho 7255: xxxxabcd\P\P
7256: Partial match: abcd
1.1.1.2 misho 7257: dddxxx\R
7258: 0: ddd
7259: 0+ xxx
7260: xxxxabcd\P\P
7261: Partial match: abcd
7262: xxx\R
7263: 0:
7264: 0+ xxx
1.1 misho 7265:
1.1.1.2 misho 7266: /abcd*/i
1.1 misho 7267: xxxxabcd\P
7268: 0: abcd
7269: xxxxabcd\P\P
7270: Partial match: abcd
7271: XXXXABCD\P
7272: 0: ABCD
7273: XXXXABCD\P\P
7274: Partial match: ABCD
7275:
1.1.1.2 misho 7276: /abc\d*/
1.1 misho 7277: xxxxabc1\P
7278: 0: abc1
7279: xxxxabc1\P\P
7280: Partial match: abc1
7281:
1.1.1.2 misho 7282: /abc[de]*/
1.1 misho 7283: xxxxabcde\P
7284: 0: abcde
7285: xxxxabcde\P\P
7286: Partial match: abcde
7287:
1.1.1.2 misho 7288: /(?:(?1)|B)(A(*F)|C)/
7289: ABCD
7290: 0: BC
7291: CCD
7292: 0: CC
7293: ** Failers
7294: No match
7295: CAD
7296: No match
1.1 misho 7297:
1.1.1.2 misho 7298: /^(?:(?1)|B)(A(*F)|C)/
7299: CCD
7300: 0: CC
7301: BCD
7302: 0: BC
7303: ** Failers
7304: No match
7305: ABCD
7306: No match
7307: CAD
7308: No match
7309: BAD
1.1 misho 7310: No match
7311:
1.1.1.2 misho 7312: /^(?!a(*SKIP)b)/
7313: ac
7314: Error -16 (item unsupported for DFA matching)
7315:
7316: /^(?=a(*SKIP)b|ac)/
7317: ** Failers
7318: No match
7319: ac
7320: Error -16 (item unsupported for DFA matching)
7321:
7322: /^(?=a(*THEN)b|ac)/
7323: ac
7324: Error -16 (item unsupported for DFA matching)
7325:
7326: /^(?=a(*PRUNE)b)/
7327: ab
7328: Error -16 (item unsupported for DFA matching)
7329: ** Failers
7330: No match
7331: ac
7332: Error -16 (item unsupported for DFA matching)
7333:
7334: /^(?(?!a(*SKIP)b))/
7335: ac
1.1 misho 7336: Error -16 (item unsupported for DFA matching)
7337:
1.1.1.2 misho 7338: /(?<=abc)def/
7339: abc\P\P
1.1.1.4 misho 7340: Partial match at offset 3: abc
1.1.1.2 misho 7341:
7342: /abc$/
7343: abc
7344: 0: abc
7345: abc\P
7346: 0: abc
7347: abc\P\P
7348: Partial match: abc
7349:
7350: /abc$/m
7351: abc
7352: 0: abc
7353: abc\n
7354: 0: abc
7355: abc\P\P
7356: Partial match: abc
7357: abc\n\P\P
7358: 0: abc
7359: abc\P
7360: 0: abc
7361: abc\n\P
7362: 0: abc
7363:
7364: /abc\z/
7365: abc
7366: 0: abc
7367: abc\P
7368: 0: abc
7369: abc\P\P
7370: Partial match: abc
7371:
7372: /abc\Z/
7373: abc
7374: 0: abc
7375: abc\P
7376: 0: abc
7377: abc\P\P
7378: Partial match: abc
7379:
7380: /abc\b/
7381: abc
7382: 0: abc
7383: abc\P
7384: 0: abc
7385: abc\P\P
7386: Partial match: abc
7387:
7388: /abc\B/
7389: abc
7390: No match
7391: abc\P
7392: Partial match: abc
7393: abc\P\P
7394: Partial match: abc
7395:
7396: /.+/
7397: abc\>0
7398: 0: abc
7399: abc\>1
7400: 0: bc
7401: abc\>2
7402: 0: c
7403: abc\>3
7404: No match
7405: abc\>4
7406: Error -24 (bad offset value)
7407: abc\>-4
7408: Error -24 (bad offset value)
7409:
7410: /^(?:a)++\w/
7411: aaaab
7412: 0: aaaab
7413: ** Failers
7414: No match
7415: aaaa
7416: No match
7417: bbb
7418: No match
7419:
7420: /^(?:aa|(?:a)++\w)/
7421: aaaab
7422: 0: aaaab
7423: 1: aa
7424: aaaa
7425: 0: aa
7426: ** Failers
7427: No match
7428: bbb
7429: No match
7430:
7431: /^(?:a)*+\w/
7432: aaaab
7433: 0: aaaab
7434: bbb
7435: 0: b
7436: ** Failers
7437: No match
7438: aaaa
7439: No match
7440:
7441: /^(a)++\w/
7442: aaaab
7443: 0: aaaab
7444: ** Failers
7445: No match
7446: aaaa
7447: No match
7448: bbb
7449: No match
7450:
7451: /^(a|)++\w/
7452: aaaab
7453: 0: aaaab
7454: ** Failers
7455: No match
7456: aaaa
7457: No match
7458: bbb
7459: No match
7460:
7461: /(?=abc){3}abc/+
7462: abcabcabc
7463: 0: abc
7464: 0+ abcabc
7465: ** Failers
7466: No match
7467: xyz
7468: No match
7469:
7470: /(?=abc)+abc/+
7471: abcabcabc
7472: 0: abc
7473: 0+ abcabc
7474: ** Failers
7475: No match
7476: xyz
7477: No match
7478:
7479: /(?=abc)++abc/+
7480: abcabcabc
7481: 0: abc
7482: 0+ abcabc
7483: ** Failers
7484: No match
7485: xyz
7486: No match
7487:
7488: /(?=abc){0}xyz/
7489: xyz
7490: 0: xyz
7491:
7492: /(?=abc){1}xyz/
7493: ** Failers
7494: No match
7495: xyz
7496: No match
7497:
7498: /(?=(a))?./
7499: ab
7500: 0: a
7501: bc
7502: 0: b
7503:
7504: /(?=(a))??./
7505: ab
7506: 0: a
7507: bc
7508: 0: b
7509:
7510: /^(?=(a)){0}b(?1)/
7511: backgammon
7512: 0: ba
7513:
7514: /^(?=(?1))?[az]([abc])d/
7515: abd
7516: 0: abd
7517: zcdxx
7518: 0: zcd
7519:
7520: /^(?!a){0}\w+/
7521: aaaaa
7522: 0: aaaaa
7523:
7524: /(?<=(abc))?xyz/
7525: abcxyz
7526: 0: xyz
7527: pqrxyz
7528: 0: xyz
7529:
7530: /((?2))((?1))/
7531: abc
7532: Error -26 (nested recursion at the same subject position)
7533:
7534: /(?(R)a+|(?R)b)/
7535: aaaabcde
7536: 0: aaaab
7537:
7538: /(?(R)a+|((?R))b)/
7539: aaaabcde
7540: 0: aaaab
7541:
7542: /((?(R)a+|(?1)b))/
7543: aaaabcde
7544: 0: aaaab
7545:
7546: /((?(R2)a+|(?1)b))/
7547: aaaabcde
7548: Error -17 (backreference condition or recursion test not supported for DFA matching)
7549:
7550: /(?(R)a*(?1)|((?R))b)/
7551: aaaabcde
7552: Error -26 (nested recursion at the same subject position)
7553:
1.1.1.5 ! misho 7554: /(a+)/O
1.1.1.2 misho 7555: \O6aaaa
1.1.1.4 misho 7556: Matched, but offsets vector is too small to show all matches
1.1.1.2 misho 7557: 0: aaaa
7558: 1: aaa
7559: 2: aa
7560: \O8aaaa
7561: 0: aaaa
7562: 1: aaa
7563: 2: aa
7564: 3: a
7565:
7566: /ab\Cde/
7567: abXde
7568: 0: abXde
7569:
7570: /(?<=ab\Cde)X/
7571: abZdeX
7572: 0: X
1.1 misho 7573:
1.1.1.3 misho 7574: /^\R/
7575: \r\P
7576: 0: \x0d
7577: \r\P\P
7578: Partial match: \x0d
7579:
7580: /^\R{2,3}x/
7581: \r\P
7582: Partial match: \x0d
7583: \r\P\P
7584: Partial match: \x0d
7585: \r\r\P
7586: Partial match: \x0d\x0d
7587: \r\r\P\P
7588: Partial match: \x0d\x0d
7589: \r\r\r\P
7590: Partial match: \x0d\x0d\x0d
7591: \r\r\r\P\P
7592: Partial match: \x0d\x0d\x0d
7593: \r\rx
7594: 0: \x0d\x0dx
7595: \r\r\rx
7596: 0: \x0d\x0d\x0dx
7597:
7598: /^\R{2,3}?x/
7599: \r\P
7600: Partial match: \x0d
7601: \r\P\P
7602: Partial match: \x0d
7603: \r\r\P
7604: Partial match: \x0d\x0d
7605: \r\r\P\P
7606: Partial match: \x0d\x0d
7607: \r\r\r\P
7608: Partial match: \x0d\x0d\x0d
7609: \r\r\r\P\P
7610: Partial match: \x0d\x0d\x0d
7611: \r\rx
7612: 0: \x0d\x0dx
7613: \r\r\rx
7614: 0: \x0d\x0d\x0dx
7615:
7616: /^\R?x/
7617: \r\P
7618: Partial match: \x0d
7619: \r\P\P
7620: Partial match: \x0d
7621: x
7622: 0: x
7623: \rx
7624: 0: \x0dx
7625:
7626: /^\R+x/
7627: \r\P
7628: Partial match: \x0d
7629: \r\P\P
7630: Partial match: \x0d
7631: \r\n\P
7632: Partial match: \x0d\x0a
7633: \r\n\P\P
7634: Partial match: \x0d\x0a
7635: \rx
7636: 0: \x0dx
7637:
7638: /^a$/<CRLF>
7639: a\r\P
7640: Partial match: a\x0d
7641: a\r\P\P
7642: Partial match: a\x0d
7643:
7644: /^a$/m<CRLF>
7645: a\r\P
7646: Partial match: a\x0d
7647: a\r\P\P
7648: Partial match: a\x0d
7649:
7650: /^(a$|a\r)/<CRLF>
7651: a\r\P
7652: 0: a\x0d
7653: a\r\P\P
7654: Partial match: a\x0d
7655:
7656: /^(a$|a\r)/m<CRLF>
7657: a\r\P
7658: 0: a\x0d
7659: a\r\P\P
7660: Partial match: a\x0d
7661:
7662: /./<CRLF>
7663: \r\P
7664: 0: \x0d
7665: \r\P\P
7666: Partial match: \x0d
7667:
7668: /.{2,3}/<CRLF>
7669: \r\P
7670: Partial match: \x0d
7671: \r\P\P
7672: Partial match: \x0d
7673: \r\r\P
7674: 0: \x0d\x0d
7675: \r\r\P\P
7676: Partial match: \x0d\x0d
7677: \r\r\r\P
7678: 0: \x0d\x0d\x0d
7679: \r\r\r\P\P
7680: Partial match: \x0d\x0d\x0d
7681:
7682: /.{2,3}?/<CRLF>
7683: \r\P
7684: Partial match: \x0d
7685: \r\P\P
7686: Partial match: \x0d
7687: \r\r\P
7688: 0: \x0d\x0d
7689: \r\r\P\P
7690: Partial match: \x0d\x0d
7691: \r\r\r\P
7692: 0: \x0d\x0d\x0d
7693: 1: \x0d\x0d
7694: \r\r\r\P\P
7695: Partial match: \x0d\x0d\x0d
7696:
7697: /-- Test simple validity check for restarts --/
7698:
7699: /abcdef/
7700: abc\R
7701: Error -30 (invalid data in workspace for DFA restart)
7702:
7703: /<H((?(?!<H|F>)(.)|(?R))++)*F>/
7704: text <H more text <H texting more hexA0-"\xA0" hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text.
7705: 0: <H more text <H texting more hexA0-"\xa0" hex above 7F-"\xbc" F> text xxxxx <H text F> text F>
7706:
7707: /^(?>.{4})abc|^\w\w.xabcd/
7708: xxxxabcd
7709: 0: xxxxabcd
7710: 1: xxxxabc
7711: xx\xa0xabcd
7712: 0: xx\xa0xabcd
7713: 1: xx\xa0xabc
7714:
7715: /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
7716: xxxxxxxxabcd
7717: 0: xxxxxxxxabcd
7718: 1: xxxxxxxxabc
7719: xx\xa0xxxxxabcd
7720: 0: xx\xa0xxxxxabcd
7721: 1: xx\xa0xxxxxabc
7722:
1.1.1.4 misho 7723: /abcd/
7724: abcd\O0
7725: Matched, but offsets vector is too small to show all matches
7726:
1.1.1.5 ! misho 7727: /-- These tests show up auto-possessification --/
! 7728:
! 7729: /[ab]*/
! 7730: aaaa
! 7731: 0: aaaa
! 7732:
! 7733: /[ab]*?/
! 7734: aaaa
! 7735: 0: aaaa
! 7736: 1: aaa
! 7737: 2: aa
! 7738: 3: a
! 7739: 4:
! 7740:
! 7741: /[ab]?/
! 7742: aaaa
! 7743: 0: a
! 7744:
! 7745: /[ab]??/
! 7746: aaaa
! 7747: 0: a
! 7748: 1:
! 7749:
! 7750: /[ab]+/
! 7751: aaaa
! 7752: 0: aaaa
! 7753:
! 7754: /[ab]+?/
! 7755: aaaa
! 7756: 0: aaaa
! 7757: 1: aaa
! 7758: 2: aa
! 7759: 3: a
! 7760:
! 7761: /[ab]{2,3}/
! 7762: aaaa
! 7763: 0: aaa
! 7764:
! 7765: /[ab]{2,3}?/
! 7766: aaaa
! 7767: 0: aaa
! 7768: 1: aa
! 7769:
! 7770: /[ab]{2,}/
! 7771: aaaa
! 7772: 0: aaaa
! 7773:
! 7774: /[ab]{2,}?/
! 7775: aaaa
! 7776: 0: aaaa
! 7777: 1: aaa
! 7778: 2: aa
! 7779:
1.1.1.2 misho 7780: /-- End of testinput8 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>