libraries/spcre/libpcre/pcre/testdata/testoutput1
changeset 0 7f656887cf89
equal deleted inserted replaced
-1:000000000000 0:7f656887cf89
       
     1 /the quick brown fox/
       
     2     the quick brown fox
       
     3  0: the quick brown fox
       
     4     The quick brown FOX
       
     5 No match
       
     6     What do you know about the quick brown fox?
       
     7  0: the quick brown fox
       
     8     What do you know about THE QUICK BROWN FOX?
       
     9 No match
       
    10 
       
    11 /The quick brown fox/i
       
    12     the quick brown fox
       
    13  0: the quick brown fox
       
    14     The quick brown FOX
       
    15  0: The quick brown FOX
       
    16     What do you know about the quick brown fox?
       
    17  0: the quick brown fox
       
    18     What do you know about THE QUICK BROWN FOX?
       
    19  0: THE QUICK BROWN FOX
       
    20 
       
    21 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
       
    22     abcd\t\n\r\f\a\e9;\$\\?caxyz
       
    23  0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
       
    24 
       
    25 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
       
    26     abxyzpqrrrabbxyyyypqAzz
       
    27  0: abxyzpqrrrabbxyyyypqAzz
       
    28     abxyzpqrrrabbxyyyypqAzz
       
    29  0: abxyzpqrrrabbxyyyypqAzz
       
    30     aabxyzpqrrrabbxyyyypqAzz
       
    31  0: aabxyzpqrrrabbxyyyypqAzz
       
    32     aaabxyzpqrrrabbxyyyypqAzz
       
    33  0: aaabxyzpqrrrabbxyyyypqAzz
       
    34     aaaabxyzpqrrrabbxyyyypqAzz
       
    35  0: aaaabxyzpqrrrabbxyyyypqAzz
       
    36     abcxyzpqrrrabbxyyyypqAzz
       
    37  0: abcxyzpqrrrabbxyyyypqAzz
       
    38     aabcxyzpqrrrabbxyyyypqAzz
       
    39  0: aabcxyzpqrrrabbxyyyypqAzz
       
    40     aaabcxyzpqrrrabbxyyyypAzz
       
    41  0: aaabcxyzpqrrrabbxyyyypAzz
       
    42     aaabcxyzpqrrrabbxyyyypqAzz
       
    43  0: aaabcxyzpqrrrabbxyyyypqAzz
       
    44     aaabcxyzpqrrrabbxyyyypqqAzz
       
    45  0: aaabcxyzpqrrrabbxyyyypqqAzz
       
    46     aaabcxyzpqrrrabbxyyyypqqqAzz
       
    47  0: aaabcxyzpqrrrabbxyyyypqqqAzz
       
    48     aaabcxyzpqrrrabbxyyyypqqqqAzz
       
    49  0: aaabcxyzpqrrrabbxyyyypqqqqAzz
       
    50     aaabcxyzpqrrrabbxyyyypqqqqqAzz
       
    51  0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
       
    52     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
       
    53  0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
       
    54     aaaabcxyzpqrrrabbxyyyypqAzz
       
    55  0: aaaabcxyzpqrrrabbxyyyypqAzz
       
    56     abxyzzpqrrrabbxyyyypqAzz
       
    57  0: abxyzzpqrrrabbxyyyypqAzz
       
    58     aabxyzzzpqrrrabbxyyyypqAzz
       
    59  0: aabxyzzzpqrrrabbxyyyypqAzz
       
    60     aaabxyzzzzpqrrrabbxyyyypqAzz
       
    61  0: aaabxyzzzzpqrrrabbxyyyypqAzz
       
    62     aaaabxyzzzzpqrrrabbxyyyypqAzz
       
    63  0: aaaabxyzzzzpqrrrabbxyyyypqAzz
       
    64     abcxyzzpqrrrabbxyyyypqAzz
       
    65  0: abcxyzzpqrrrabbxyyyypqAzz
       
    66     aabcxyzzzpqrrrabbxyyyypqAzz
       
    67  0: aabcxyzzzpqrrrabbxyyyypqAzz
       
    68     aaabcxyzzzzpqrrrabbxyyyypqAzz
       
    69  0: aaabcxyzzzzpqrrrabbxyyyypqAzz
       
    70     aaaabcxyzzzzpqrrrabbxyyyypqAzz
       
    71  0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
       
    72     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
       
    73  0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
       
    74     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
       
    75  0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
       
    76     aaabcxyzpqrrrabbxyyyypABzz
       
    77  0: aaabcxyzpqrrrabbxyyyypABzz
       
    78     aaabcxyzpqrrrabbxyyyypABBzz
       
    79  0: aaabcxyzpqrrrabbxyyyypABBzz
       
    80     >>>aaabxyzpqrrrabbxyyyypqAzz
       
    81  0: aaabxyzpqrrrabbxyyyypqAzz
       
    82     >aaaabxyzpqrrrabbxyyyypqAzz
       
    83  0: aaaabxyzpqrrrabbxyyyypqAzz
       
    84     >>>>abcxyzpqrrrabbxyyyypqAzz
       
    85  0: abcxyzpqrrrabbxyyyypqAzz
       
    86     *** Failers
       
    87 No match
       
    88     abxyzpqrrabbxyyyypqAzz
       
    89 No match
       
    90     abxyzpqrrrrabbxyyyypqAzz
       
    91 No match
       
    92     abxyzpqrrrabxyyyypqAzz
       
    93 No match
       
    94     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
       
    95 No match
       
    96     aaaabcxyzzzzpqrrrabbbxyyypqAzz
       
    97 No match
       
    98     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
       
    99 No match
       
   100 
       
   101 /^(abc){1,2}zz/
       
   102     abczz
       
   103  0: abczz
       
   104  1: abc
       
   105     abcabczz
       
   106  0: abcabczz
       
   107  1: abc
       
   108     *** Failers
       
   109 No match
       
   110     zz
       
   111 No match
       
   112     abcabcabczz
       
   113 No match
       
   114     >>abczz
       
   115 No match
       
   116 
       
   117 /^(b+?|a){1,2}?c/
       
   118     bc
       
   119  0: bc
       
   120  1: b
       
   121     bbc
       
   122  0: bbc
       
   123  1: b
       
   124     bbbc
       
   125  0: bbbc
       
   126  1: bb
       
   127     bac
       
   128  0: bac
       
   129  1: a
       
   130     bbac
       
   131  0: bbac
       
   132  1: a
       
   133     aac
       
   134  0: aac
       
   135  1: a
       
   136     abbbbbbbbbbbc
       
   137  0: abbbbbbbbbbbc
       
   138  1: bbbbbbbbbbb
       
   139     bbbbbbbbbbbac
       
   140  0: bbbbbbbbbbbac
       
   141  1: a
       
   142     *** Failers
       
   143 No match
       
   144     aaac
       
   145 No match
       
   146     abbbbbbbbbbbac
       
   147 No match
       
   148 
       
   149 /^(b+|a){1,2}c/
       
   150     bc
       
   151  0: bc
       
   152  1: b
       
   153     bbc
       
   154  0: bbc
       
   155  1: bb
       
   156     bbbc
       
   157  0: bbbc
       
   158  1: bbb
       
   159     bac
       
   160  0: bac
       
   161  1: a
       
   162     bbac
       
   163  0: bbac
       
   164  1: a
       
   165     aac
       
   166  0: aac
       
   167  1: a
       
   168     abbbbbbbbbbbc
       
   169  0: abbbbbbbbbbbc
       
   170  1: bbbbbbbbbbb
       
   171     bbbbbbbbbbbac
       
   172  0: bbbbbbbbbbbac
       
   173  1: a
       
   174     *** Failers
       
   175 No match
       
   176     aaac
       
   177 No match
       
   178     abbbbbbbbbbbac
       
   179 No match
       
   180 
       
   181 /^(b+|a){1,2}?bc/
       
   182     bbc
       
   183  0: bbc
       
   184  1: b
       
   185 
       
   186 /^(b*|ba){1,2}?bc/
       
   187     babc
       
   188  0: babc
       
   189  1: ba
       
   190     bbabc
       
   191  0: bbabc
       
   192  1: ba
       
   193     bababc
       
   194  0: bababc
       
   195  1: ba
       
   196     *** Failers
       
   197 No match
       
   198     bababbc
       
   199 No match
       
   200     babababc
       
   201 No match
       
   202 
       
   203 /^(ba|b*){1,2}?bc/
       
   204     babc
       
   205  0: babc
       
   206  1: ba
       
   207     bbabc
       
   208  0: bbabc
       
   209  1: ba
       
   210     bababc
       
   211  0: bababc
       
   212  1: ba
       
   213     *** Failers
       
   214 No match
       
   215     bababbc
       
   216 No match
       
   217     babababc
       
   218 No match
       
   219 
       
   220 /^\ca\cA\c[\c{\c:/
       
   221     \x01\x01\e;z
       
   222  0: \x01\x01\x1b;z
       
   223 
       
   224 /^[ab\]cde]/
       
   225     athing
       
   226  0: a
       
   227     bthing
       
   228  0: b
       
   229     ]thing
       
   230  0: ]
       
   231     cthing
       
   232  0: c
       
   233     dthing
       
   234  0: d
       
   235     ething
       
   236  0: e
       
   237     *** Failers
       
   238 No match
       
   239     fthing
       
   240 No match
       
   241     [thing
       
   242 No match
       
   243     \\thing
       
   244 No match
       
   245 
       
   246 /^[]cde]/
       
   247     ]thing
       
   248  0: ]
       
   249     cthing
       
   250  0: c
       
   251     dthing
       
   252  0: d
       
   253     ething
       
   254  0: e
       
   255     *** Failers
       
   256 No match
       
   257     athing
       
   258 No match
       
   259     fthing
       
   260 No match
       
   261 
       
   262 /^[^ab\]cde]/
       
   263     fthing
       
   264  0: f
       
   265     [thing
       
   266  0: [
       
   267     \\thing
       
   268  0: \
       
   269     *** Failers
       
   270  0: *
       
   271     athing
       
   272 No match
       
   273     bthing
       
   274 No match
       
   275     ]thing
       
   276 No match
       
   277     cthing
       
   278 No match
       
   279     dthing
       
   280 No match
       
   281     ething
       
   282 No match
       
   283 
       
   284 /^[^]cde]/
       
   285     athing
       
   286  0: a
       
   287     fthing
       
   288  0: f
       
   289     *** Failers
       
   290  0: *
       
   291     ]thing
       
   292 No match
       
   293     cthing
       
   294 No match
       
   295     dthing
       
   296 No match
       
   297     ething
       
   298 No match
       
   299 
       
   300 /^\/
       
   301     
       
   302  0: \x81
       
   303 
       
   304 /^ÿ/
       
   305     ÿ
       
   306  0: \xff
       
   307 
       
   308 /^[0-9]+$/
       
   309     0
       
   310  0: 0
       
   311     1
       
   312  0: 1
       
   313     2
       
   314  0: 2
       
   315     3
       
   316  0: 3
       
   317     4
       
   318  0: 4
       
   319     5
       
   320  0: 5
       
   321     6
       
   322  0: 6
       
   323     7
       
   324  0: 7
       
   325     8
       
   326  0: 8
       
   327     9
       
   328  0: 9
       
   329     10
       
   330  0: 10
       
   331     100
       
   332  0: 100
       
   333     *** Failers
       
   334 No match
       
   335     abc
       
   336 No match
       
   337 
       
   338 /^.*nter/
       
   339     enter
       
   340  0: enter
       
   341     inter
       
   342  0: inter
       
   343     uponter
       
   344  0: uponter
       
   345 
       
   346 /^xxx[0-9]+$/
       
   347     xxx0
       
   348  0: xxx0
       
   349     xxx1234
       
   350  0: xxx1234
       
   351     *** Failers
       
   352 No match
       
   353     xxx
       
   354 No match
       
   355 
       
   356 /^.+[0-9][0-9][0-9]$/
       
   357     x123
       
   358  0: x123
       
   359     xx123
       
   360  0: xx123
       
   361     123456
       
   362  0: 123456
       
   363     *** Failers
       
   364 No match
       
   365     123
       
   366 No match
       
   367     x1234
       
   368  0: x1234
       
   369 
       
   370 /^.+?[0-9][0-9][0-9]$/
       
   371     x123
       
   372  0: x123
       
   373     xx123
       
   374  0: xx123
       
   375     123456
       
   376  0: 123456
       
   377     *** Failers
       
   378 No match
       
   379     123
       
   380 No match
       
   381     x1234
       
   382  0: x1234
       
   383 
       
   384 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
       
   385     abc!pqr=apquxz.ixr.zzz.ac.uk
       
   386  0: abc!pqr=apquxz.ixr.zzz.ac.uk
       
   387  1: abc
       
   388  2: pqr
       
   389     *** Failers
       
   390 No match
       
   391     !pqr=apquxz.ixr.zzz.ac.uk
       
   392 No match
       
   393     abc!=apquxz.ixr.zzz.ac.uk
       
   394 No match
       
   395     abc!pqr=apquxz:ixr.zzz.ac.uk
       
   396 No match
       
   397     abc!pqr=apquxz.ixr.zzz.ac.ukk
       
   398 No match
       
   399 
       
   400 /:/
       
   401     Well, we need a colon: somewhere
       
   402  0: :
       
   403     *** Fail if we don't
       
   404 No match
       
   405 
       
   406 /([\da-f:]+)$/i
       
   407     0abc
       
   408  0: 0abc
       
   409  1: 0abc
       
   410     abc
       
   411  0: abc
       
   412  1: abc
       
   413     fed
       
   414  0: fed
       
   415  1: fed
       
   416     E
       
   417  0: E
       
   418  1: E
       
   419     ::
       
   420  0: ::
       
   421  1: ::
       
   422     5f03:12C0::932e
       
   423  0: 5f03:12C0::932e
       
   424  1: 5f03:12C0::932e
       
   425     fed def
       
   426  0: def
       
   427  1: def
       
   428     Any old stuff
       
   429  0: ff
       
   430  1: ff
       
   431     *** Failers
       
   432 No match
       
   433     0zzz
       
   434 No match
       
   435     gzzz
       
   436 No match
       
   437     fed\x20
       
   438 No match
       
   439     Any old rubbish
       
   440 No match
       
   441 
       
   442 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
       
   443     .1.2.3
       
   444  0: .1.2.3
       
   445  1: 1
       
   446  2: 2
       
   447  3: 3
       
   448     A.12.123.0
       
   449  0: A.12.123.0
       
   450  1: 12
       
   451  2: 123
       
   452  3: 0
       
   453     *** Failers
       
   454 No match
       
   455     .1.2.3333
       
   456 No match
       
   457     1.2.3
       
   458 No match
       
   459     1234.2.3
       
   460 No match
       
   461 
       
   462 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
       
   463     1 IN SOA non-sp1 non-sp2(
       
   464  0: 1 IN SOA non-sp1 non-sp2(
       
   465  1: 1
       
   466  2: non-sp1
       
   467  3: non-sp2
       
   468     1    IN    SOA    non-sp1    non-sp2   (
       
   469  0: 1    IN    SOA    non-sp1    non-sp2   (
       
   470  1: 1
       
   471  2: non-sp1
       
   472  3: non-sp2
       
   473     *** Failers
       
   474 No match
       
   475     1IN SOA non-sp1 non-sp2(
       
   476 No match
       
   477 
       
   478 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
       
   479     a.
       
   480  0: a.
       
   481     Z.
       
   482  0: Z.
       
   483     2.
       
   484  0: 2.
       
   485     ab-c.pq-r.
       
   486  0: ab-c.pq-r.
       
   487  1: .pq-r
       
   488     sxk.zzz.ac.uk.
       
   489  0: sxk.zzz.ac.uk.
       
   490  1: .uk
       
   491     x-.y-.
       
   492  0: x-.y-.
       
   493  1: .y-
       
   494     *** Failers
       
   495 No match
       
   496     -abc.peq.
       
   497 No match
       
   498 
       
   499 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
       
   500     *.a
       
   501  0: *.a
       
   502     *.b0-a
       
   503  0: *.b0-a
       
   504  1: 0-a
       
   505     *.c3-b.c
       
   506  0: *.c3-b.c
       
   507  1: 3-b
       
   508  2: .c
       
   509     *.c-a.b-c
       
   510  0: *.c-a.b-c
       
   511  1: -a
       
   512  2: .b-c
       
   513  3: -c
       
   514     *** Failers
       
   515 No match
       
   516     *.0
       
   517 No match
       
   518     *.a-
       
   519 No match
       
   520     *.a-b.c-
       
   521 No match
       
   522     *.c-a.0-c
       
   523 No match
       
   524 
       
   525 /^(?=ab(de))(abd)(e)/
       
   526     abde
       
   527  0: abde
       
   528  1: de
       
   529  2: abd
       
   530  3: e
       
   531 
       
   532 /^(?!(ab)de|x)(abd)(f)/
       
   533     abdf
       
   534  0: abdf
       
   535  1: <unset>
       
   536  2: abd
       
   537  3: f
       
   538 
       
   539 /^(?=(ab(cd)))(ab)/
       
   540     abcd
       
   541  0: ab
       
   542  1: abcd
       
   543  2: cd
       
   544  3: ab
       
   545 
       
   546 /^[\da-f](\.[\da-f])*$/i
       
   547     a.b.c.d
       
   548  0: a.b.c.d
       
   549  1: .d
       
   550     A.B.C.D
       
   551  0: A.B.C.D
       
   552  1: .D
       
   553     a.b.c.1.2.3.C
       
   554  0: a.b.c.1.2.3.C
       
   555  1: .C
       
   556 
       
   557 /^\".*\"\s*(;.*)?$/
       
   558     \"1234\"
       
   559  0: "1234"
       
   560     \"abcd\" ;
       
   561  0: "abcd" ;
       
   562  1: ;
       
   563     \"\" ; rhubarb
       
   564  0: "" ; rhubarb
       
   565  1: ; rhubarb
       
   566     *** Failers
       
   567 No match
       
   568     \"1234\" : things
       
   569 No match
       
   570 
       
   571 /^$/
       
   572     \
       
   573  0: 
       
   574     *** Failers
       
   575 No match
       
   576 
       
   577 /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
       
   578     ab c
       
   579  0: ab c
       
   580     *** Failers
       
   581 No match
       
   582     abc
       
   583 No match
       
   584     ab cde
       
   585 No match
       
   586 
       
   587 /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
       
   588     ab c
       
   589  0: ab c
       
   590     *** Failers
       
   591 No match
       
   592     abc
       
   593 No match
       
   594     ab cde
       
   595 No match
       
   596 
       
   597 /^   a\ b[c ]d       $/x
       
   598     a bcd
       
   599  0: a bcd
       
   600     a b d
       
   601  0: a b d
       
   602     *** Failers
       
   603 No match
       
   604     abcd
       
   605 No match
       
   606     ab d
       
   607 No match
       
   608 
       
   609 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
       
   610     abcdefhijklm
       
   611  0: abcdefhijklm
       
   612  1: abc
       
   613  2: bc
       
   614  3: c
       
   615  4: def
       
   616  5: ef
       
   617  6: f
       
   618  7: hij
       
   619  8: ij
       
   620  9: j
       
   621 10: klm
       
   622 11: lm
       
   623 12: m
       
   624 
       
   625 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
       
   626     abcdefhijklm
       
   627  0: abcdefhijklm
       
   628  1: bc
       
   629  2: c
       
   630  3: ef
       
   631  4: f
       
   632  5: ij
       
   633  6: j
       
   634  7: lm
       
   635  8: m
       
   636 
       
   637 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
       
   638     a+ Z0+\x08\n\x1d\x12
       
   639  0: a+ Z0+\x08\x0a\x1d\x12
       
   640 
       
   641 /^[.^$|()*+?{,}]+/
       
   642     .^\$(*+)|{?,?}
       
   643  0: .^$(*+)|{?,?}
       
   644 
       
   645 /^a*\w/
       
   646     z
       
   647  0: z
       
   648     az
       
   649  0: az
       
   650     aaaz
       
   651  0: aaaz
       
   652     a
       
   653  0: a
       
   654     aa
       
   655  0: aa
       
   656     aaaa
       
   657  0: aaaa
       
   658     a+
       
   659  0: a
       
   660     aa+
       
   661  0: aa
       
   662 
       
   663 /^a*?\w/
       
   664     z
       
   665  0: z
       
   666     az
       
   667  0: a
       
   668     aaaz
       
   669  0: a
       
   670     a
       
   671  0: a
       
   672     aa
       
   673  0: a
       
   674     aaaa
       
   675  0: a
       
   676     a+
       
   677  0: a
       
   678     aa+
       
   679  0: a
       
   680 
       
   681 /^a+\w/
       
   682     az
       
   683  0: az
       
   684     aaaz
       
   685  0: aaaz
       
   686     aa
       
   687  0: aa
       
   688     aaaa
       
   689  0: aaaa
       
   690     aa+
       
   691  0: aa
       
   692 
       
   693 /^a+?\w/
       
   694     az
       
   695  0: az
       
   696     aaaz
       
   697  0: aa
       
   698     aa
       
   699  0: aa
       
   700     aaaa
       
   701  0: aa
       
   702     aa+
       
   703  0: aa
       
   704 
       
   705 /^\d{8}\w{2,}/
       
   706     1234567890
       
   707  0: 1234567890
       
   708     12345678ab
       
   709  0: 12345678ab
       
   710     12345678__
       
   711  0: 12345678__
       
   712     *** Failers
       
   713 No match
       
   714     1234567
       
   715 No match
       
   716 
       
   717 /^[aeiou\d]{4,5}$/
       
   718     uoie
       
   719  0: uoie
       
   720     1234
       
   721  0: 1234
       
   722     12345
       
   723  0: 12345
       
   724     aaaaa
       
   725  0: aaaaa
       
   726     *** Failers
       
   727 No match
       
   728     123456
       
   729 No match
       
   730 
       
   731 /^[aeiou\d]{4,5}?/
       
   732     uoie
       
   733  0: uoie
       
   734     1234
       
   735  0: 1234
       
   736     12345
       
   737  0: 1234
       
   738     aaaaa
       
   739  0: aaaa
       
   740     123456
       
   741  0: 1234
       
   742 
       
   743 /\A(abc|def)=(\1){2,3}\Z/
       
   744     abc=abcabc
       
   745  0: abc=abcabc
       
   746  1: abc
       
   747  2: abc
       
   748     def=defdefdef
       
   749  0: def=defdefdef
       
   750  1: def
       
   751  2: def
       
   752     *** Failers
       
   753 No match
       
   754     abc=defdef
       
   755 No match
       
   756 
       
   757 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
       
   758     abcdefghijkcda2
       
   759  0: abcdefghijkcda2
       
   760  1: a
       
   761  2: b
       
   762  3: c
       
   763  4: d
       
   764  5: e
       
   765  6: f
       
   766  7: g
       
   767  8: h
       
   768  9: i
       
   769 10: j
       
   770 11: k
       
   771 12: cd
       
   772     abcdefghijkkkkcda2
       
   773  0: abcdefghijkkkkcda2
       
   774  1: a
       
   775  2: b
       
   776  3: c
       
   777  4: d
       
   778  5: e
       
   779  6: f
       
   780  7: g
       
   781  8: h
       
   782  9: i
       
   783 10: j
       
   784 11: k
       
   785 12: cd
       
   786 
       
   787 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/
       
   788     cataract cataract23
       
   789  0: cataract cataract23
       
   790  1: cataract
       
   791  2: aract
       
   792  3: ract
       
   793  4: 
       
   794  5: 3
       
   795     catatonic catatonic23
       
   796  0: catatonic catatonic23
       
   797  1: catatonic
       
   798  2: atonic
       
   799  3: tonic
       
   800  4: 
       
   801  5: 3
       
   802     caterpillar caterpillar23
       
   803  0: caterpillar caterpillar23
       
   804  1: caterpillar
       
   805  2: erpillar
       
   806  3: <unset>
       
   807  4: 
       
   808  5: 3
       
   809 
       
   810 
       
   811 /^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]/
       
   812     From abcd  Mon Sep 01 12:33:02 1997
       
   813  0: From abcd  Mon Sep 01 12:33
       
   814  1: abcd
       
   815 
       
   816 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
       
   817     From abcd  Mon Sep 01 12:33:02 1997
       
   818  0: From abcd  Mon Sep 01 12:33
       
   819  1: Sep 
       
   820     From abcd  Mon Sep  1 12:33:02 1997
       
   821  0: From abcd  Mon Sep  1 12:33
       
   822  1: Sep  
       
   823     *** Failers
       
   824 No match
       
   825     From abcd  Sep 01 12:33:02 1997
       
   826 No match
       
   827 
       
   828 /^12.34/s
       
   829     12\n34
       
   830  0: 12\x0a34
       
   831     12\r34
       
   832  0: 12\x0d34
       
   833 
       
   834 /\w+(?=\t)/
       
   835     the quick brown\t fox
       
   836  0: brown
       
   837 
       
   838 /foo(?!bar)(.*)/
       
   839     foobar is foolish see?
       
   840  0: foolish see?
       
   841  1: lish see?
       
   842 
       
   843 /(?:(?!foo)...|^.{0,2})bar(.*)/
       
   844     foobar crowbar etc
       
   845  0: rowbar etc
       
   846  1:  etc
       
   847     barrel
       
   848  0: barrel
       
   849  1: rel
       
   850     2barrel
       
   851  0: 2barrel
       
   852  1: rel
       
   853     A barrel
       
   854  0: A barrel
       
   855  1: rel
       
   856 
       
   857 /^(\D*)(?=\d)(?!123)/
       
   858     abc456
       
   859  0: abc
       
   860  1: abc
       
   861     *** Failers
       
   862 No match
       
   863     abc123
       
   864 No match
       
   865 
       
   866 /^1234(?# test newlines
       
   867   inside)/
       
   868     1234
       
   869  0: 1234
       
   870 
       
   871 /^1234 #comment in extended re
       
   872   /x
       
   873     1234
       
   874  0: 1234
       
   875 
       
   876 /#rhubarb
       
   877   abcd/x
       
   878     abcd
       
   879  0: abcd
       
   880 
       
   881 /^abcd#rhubarb/x
       
   882     abcd
       
   883  0: abcd
       
   884 
       
   885 /^(a)\1{2,3}(.)/
       
   886     aaab
       
   887  0: aaab
       
   888  1: a
       
   889  2: b
       
   890     aaaab
       
   891  0: aaaab
       
   892  1: a
       
   893  2: b
       
   894     aaaaab
       
   895  0: aaaaa
       
   896  1: a
       
   897  2: a
       
   898     aaaaaab
       
   899  0: aaaaa
       
   900  1: a
       
   901  2: a
       
   902 
       
   903 /(?!^)abc/
       
   904     the abc
       
   905  0: abc
       
   906     *** Failers
       
   907 No match
       
   908     abc
       
   909 No match
       
   910 
       
   911 /(?=^)abc/
       
   912     abc
       
   913  0: abc
       
   914     *** Failers
       
   915 No match
       
   916     the abc
       
   917 No match
       
   918 
       
   919 /^[ab]{1,3}(ab*|b)/
       
   920     aabbbbb
       
   921  0: aabb
       
   922  1: b
       
   923 
       
   924 /^[ab]{1,3}?(ab*|b)/
       
   925     aabbbbb
       
   926  0: aabbbbb
       
   927  1: abbbbb
       
   928 
       
   929 /^[ab]{1,3}?(ab*?|b)/
       
   930     aabbbbb
       
   931  0: aa
       
   932  1: a
       
   933 
       
   934 /^[ab]{1,3}(ab*?|b)/
       
   935     aabbbbb
       
   936  0: aabb
       
   937  1: b
       
   938 
       
   939 /  (?: [\040\t] |  \(
       
   940 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   941 \)  )*                          # optional leading comment
       
   942 (?:    (?:
       
   943 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   944 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   945 |
       
   946 " (?:                      # opening quote...
       
   947 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   948 |                     #    or
       
   949 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   950 )* "  # closing quote
       
   951 )                    # initial word
       
   952 (?:  (?: [\040\t] |  \(
       
   953 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   954 \)  )*  \.  (?: [\040\t] |  \(
       
   955 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   956 \)  )*   (?:
       
   957 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   958 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   959 |
       
   960 " (?:                      # opening quote...
       
   961 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   962 |                     #    or
       
   963 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   964 )* "  # closing quote
       
   965 )  )* # further okay, if led by a period
       
   966 (?: [\040\t] |  \(
       
   967 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   968 \)  )*  @  (?: [\040\t] |  \(
       
   969 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   970 \)  )*    (?:
       
   971 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   972 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   973 |   \[                         # [
       
   974 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   975 \]                        #           ]
       
   976 )                           # initial subdomain
       
   977 (?:                                  #
       
   978 (?: [\040\t] |  \(
       
   979 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   980 \)  )*  \.                        # if led by a period...
       
   981 (?: [\040\t] |  \(
       
   982 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   983 \)  )*   (?:
       
   984 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   985 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   986 |   \[                         # [
       
   987 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   988 \]                        #           ]
       
   989 )                     #   ...further okay
       
   990 )*
       
   991 # address
       
   992 |                     #  or
       
   993 (?:
       
   994 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   995 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   996 |
       
   997 " (?:                      # opening quote...
       
   998 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   999 |                     #    or
       
  1000 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
  1001 )* "  # closing quote
       
  1002 )             # one word, optionally followed by....
       
  1003 (?:
       
  1004 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
       
  1005 \(
       
  1006 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1007 \)       |  # comments, or...
       
  1008 
       
  1009 " (?:                      # opening quote...
       
  1010 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
  1011 |                     #    or
       
  1012 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
  1013 )* "  # closing quote
       
  1014 # quoted strings
       
  1015 )*
       
  1016 <  (?: [\040\t] |  \(
       
  1017 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1018 \)  )*                     # leading <
       
  1019 (?:  @  (?: [\040\t] |  \(
       
  1020 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1021 \)  )*    (?:
       
  1022 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1023 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1024 |   \[                         # [
       
  1025 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1026 \]                        #           ]
       
  1027 )                           # initial subdomain
       
  1028 (?:                                  #
       
  1029 (?: [\040\t] |  \(
       
  1030 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1031 \)  )*  \.                        # if led by a period...
       
  1032 (?: [\040\t] |  \(
       
  1033 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1034 \)  )*   (?:
       
  1035 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1036 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1037 |   \[                         # [
       
  1038 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1039 \]                        #           ]
       
  1040 )                     #   ...further okay
       
  1041 )*
       
  1042 
       
  1043 (?:  (?: [\040\t] |  \(
       
  1044 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1045 \)  )*  ,  (?: [\040\t] |  \(
       
  1046 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1047 \)  )*  @  (?: [\040\t] |  \(
       
  1048 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1049 \)  )*    (?:
       
  1050 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1051 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1052 |   \[                         # [
       
  1053 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1054 \]                        #           ]
       
  1055 )                           # initial subdomain
       
  1056 (?:                                  #
       
  1057 (?: [\040\t] |  \(
       
  1058 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1059 \)  )*  \.                        # if led by a period...
       
  1060 (?: [\040\t] |  \(
       
  1061 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1062 \)  )*   (?:
       
  1063 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1064 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1065 |   \[                         # [
       
  1066 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1067 \]                        #           ]
       
  1068 )                     #   ...further okay
       
  1069 )*
       
  1070 )* # further okay, if led by comma
       
  1071 :                                # closing colon
       
  1072 (?: [\040\t] |  \(
       
  1073 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1074 \)  )*  )? #       optional route
       
  1075 (?:
       
  1076 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1077 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1078 |
       
  1079 " (?:                      # opening quote...
       
  1080 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
  1081 |                     #    or
       
  1082 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
  1083 )* "  # closing quote
       
  1084 )                    # initial word
       
  1085 (?:  (?: [\040\t] |  \(
       
  1086 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1087 \)  )*  \.  (?: [\040\t] |  \(
       
  1088 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1089 \)  )*   (?:
       
  1090 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1091 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1092 |
       
  1093 " (?:                      # opening quote...
       
  1094 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
  1095 |                     #    or
       
  1096 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
  1097 )* "  # closing quote
       
  1098 )  )* # further okay, if led by a period
       
  1099 (?: [\040\t] |  \(
       
  1100 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1101 \)  )*  @  (?: [\040\t] |  \(
       
  1102 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1103 \)  )*    (?:
       
  1104 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1105 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1106 |   \[                         # [
       
  1107 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1108 \]                        #           ]
       
  1109 )                           # initial subdomain
       
  1110 (?:                                  #
       
  1111 (?: [\040\t] |  \(
       
  1112 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1113 \)  )*  \.                        # if led by a period...
       
  1114 (?: [\040\t] |  \(
       
  1115 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1116 \)  )*   (?:
       
  1117 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1118 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1119 |   \[                         # [
       
  1120 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
  1121 \]                        #           ]
       
  1122 )                     #   ...further okay
       
  1123 )*
       
  1124 #       address spec
       
  1125 (?: [\040\t] |  \(
       
  1126 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1127 \)  )*  > #                  trailing >
       
  1128 # name and address
       
  1129 )  (?: [\040\t] |  \(
       
  1130 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
  1131 \)  )*                       # optional trailing comment
       
  1132 /x
       
  1133     Alan Other <user\@dom.ain>
       
  1134  0: Alan Other <user@dom.ain>
       
  1135     <user\@dom.ain>
       
  1136  0: user@dom.ain
       
  1137     user\@dom.ain
       
  1138  0: user@dom.ain
       
  1139     \"A. Other\" <user.1234\@dom.ain> (a comment)
       
  1140  0: "A. Other" <user.1234@dom.ain> (a comment)
       
  1141     A. Other <user.1234\@dom.ain> (a comment)
       
  1142  0:  Other <user.1234@dom.ain> (a comment)
       
  1143     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
       
  1144  0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
       
  1145     A missing angle <user\@some.where
       
  1146  0: user@some.where
       
  1147     *** Failers
       
  1148 No match
       
  1149     The quick brown fox
       
  1150 No match
       
  1151 
       
  1152 /[\040\t]*                    # Nab whitespace.
       
  1153 (?:
       
  1154 \(                              #  (
       
  1155 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1156 (?:                                 #       (
       
  1157 (?:  \\ [^\x80-\xff]  |
       
  1158 \(                            #  (
       
  1159 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1160 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1161 \)                           #                       )
       
  1162 )    #         special
       
  1163 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1164 )*                                  #            )*
       
  1165 \)                             #                )
       
  1166 [\040\t]* )*    # If comment found, allow more spaces.
       
  1167 # optional leading comment
       
  1168 (?:
       
  1169 (?:
       
  1170 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1171 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1172 # Atom
       
  1173 |                       #  or
       
  1174 "                                     # "
       
  1175 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1176 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1177 "                                     #        "
       
  1178 # Quoted string
       
  1179 )
       
  1180 [\040\t]*                    # Nab whitespace.
       
  1181 (?:
       
  1182 \(                              #  (
       
  1183 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1184 (?:                                 #       (
       
  1185 (?:  \\ [^\x80-\xff]  |
       
  1186 \(                            #  (
       
  1187 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1188 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1189 \)                           #                       )
       
  1190 )    #         special
       
  1191 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1192 )*                                  #            )*
       
  1193 \)                             #                )
       
  1194 [\040\t]* )*    # If comment found, allow more spaces.
       
  1195 (?:
       
  1196 \.
       
  1197 [\040\t]*                    # Nab whitespace.
       
  1198 (?:
       
  1199 \(                              #  (
       
  1200 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1201 (?:                                 #       (
       
  1202 (?:  \\ [^\x80-\xff]  |
       
  1203 \(                            #  (
       
  1204 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1205 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1206 \)                           #                       )
       
  1207 )    #         special
       
  1208 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1209 )*                                  #            )*
       
  1210 \)                             #                )
       
  1211 [\040\t]* )*    # If comment found, allow more spaces.
       
  1212 (?:
       
  1213 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1214 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1215 # Atom
       
  1216 |                       #  or
       
  1217 "                                     # "
       
  1218 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1219 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1220 "                                     #        "
       
  1221 # Quoted string
       
  1222 )
       
  1223 [\040\t]*                    # Nab whitespace.
       
  1224 (?:
       
  1225 \(                              #  (
       
  1226 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1227 (?:                                 #       (
       
  1228 (?:  \\ [^\x80-\xff]  |
       
  1229 \(                            #  (
       
  1230 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1231 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1232 \)                           #                       )
       
  1233 )    #         special
       
  1234 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1235 )*                                  #            )*
       
  1236 \)                             #                )
       
  1237 [\040\t]* )*    # If comment found, allow more spaces.
       
  1238 # additional words
       
  1239 )*
       
  1240 @
       
  1241 [\040\t]*                    # Nab whitespace.
       
  1242 (?:
       
  1243 \(                              #  (
       
  1244 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1245 (?:                                 #       (
       
  1246 (?:  \\ [^\x80-\xff]  |
       
  1247 \(                            #  (
       
  1248 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1249 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1250 \)                           #                       )
       
  1251 )    #         special
       
  1252 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1253 )*                                  #            )*
       
  1254 \)                             #                )
       
  1255 [\040\t]* )*    # If comment found, allow more spaces.
       
  1256 (?:
       
  1257 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1258 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1259 |
       
  1260 \[                            # [
       
  1261 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1262 \]                           #           ]
       
  1263 )
       
  1264 [\040\t]*                    # Nab whitespace.
       
  1265 (?:
       
  1266 \(                              #  (
       
  1267 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1268 (?:                                 #       (
       
  1269 (?:  \\ [^\x80-\xff]  |
       
  1270 \(                            #  (
       
  1271 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1272 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1273 \)                           #                       )
       
  1274 )    #         special
       
  1275 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1276 )*                                  #            )*
       
  1277 \)                             #                )
       
  1278 [\040\t]* )*    # If comment found, allow more spaces.
       
  1279 # optional trailing comments
       
  1280 (?:
       
  1281 \.
       
  1282 [\040\t]*                    # Nab whitespace.
       
  1283 (?:
       
  1284 \(                              #  (
       
  1285 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1286 (?:                                 #       (
       
  1287 (?:  \\ [^\x80-\xff]  |
       
  1288 \(                            #  (
       
  1289 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1290 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1291 \)                           #                       )
       
  1292 )    #         special
       
  1293 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1294 )*                                  #            )*
       
  1295 \)                             #                )
       
  1296 [\040\t]* )*    # If comment found, allow more spaces.
       
  1297 (?:
       
  1298 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1299 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1300 |
       
  1301 \[                            # [
       
  1302 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1303 \]                           #           ]
       
  1304 )
       
  1305 [\040\t]*                    # Nab whitespace.
       
  1306 (?:
       
  1307 \(                              #  (
       
  1308 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1309 (?:                                 #       (
       
  1310 (?:  \\ [^\x80-\xff]  |
       
  1311 \(                            #  (
       
  1312 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1313 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1314 \)                           #                       )
       
  1315 )    #         special
       
  1316 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1317 )*                                  #            )*
       
  1318 \)                             #                )
       
  1319 [\040\t]* )*    # If comment found, allow more spaces.
       
  1320 # optional trailing comments
       
  1321 )*
       
  1322 # address
       
  1323 |                             #  or
       
  1324 (?:
       
  1325 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1326 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1327 # Atom
       
  1328 |                       #  or
       
  1329 "                                     # "
       
  1330 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1331 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1332 "                                     #        "
       
  1333 # Quoted string
       
  1334 )
       
  1335 # leading word
       
  1336 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
       
  1337 (?:
       
  1338 (?:
       
  1339 \(                              #  (
       
  1340 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1341 (?:                                 #       (
       
  1342 (?:  \\ [^\x80-\xff]  |
       
  1343 \(                            #  (
       
  1344 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1345 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1346 \)                           #                       )
       
  1347 )    #         special
       
  1348 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1349 )*                                  #            )*
       
  1350 \)                             #                )
       
  1351 |
       
  1352 "                                     # "
       
  1353 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1354 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1355 "                                     #        "
       
  1356 ) # "special" comment or quoted string
       
  1357 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
       
  1358 )*
       
  1359 <
       
  1360 [\040\t]*                    # Nab whitespace.
       
  1361 (?:
       
  1362 \(                              #  (
       
  1363 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1364 (?:                                 #       (
       
  1365 (?:  \\ [^\x80-\xff]  |
       
  1366 \(                            #  (
       
  1367 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1368 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1369 \)                           #                       )
       
  1370 )    #         special
       
  1371 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1372 )*                                  #            )*
       
  1373 \)                             #                )
       
  1374 [\040\t]* )*    # If comment found, allow more spaces.
       
  1375 # <
       
  1376 (?:
       
  1377 @
       
  1378 [\040\t]*                    # Nab whitespace.
       
  1379 (?:
       
  1380 \(                              #  (
       
  1381 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1382 (?:                                 #       (
       
  1383 (?:  \\ [^\x80-\xff]  |
       
  1384 \(                            #  (
       
  1385 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1386 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1387 \)                           #                       )
       
  1388 )    #         special
       
  1389 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1390 )*                                  #            )*
       
  1391 \)                             #                )
       
  1392 [\040\t]* )*    # If comment found, allow more spaces.
       
  1393 (?:
       
  1394 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1395 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1396 |
       
  1397 \[                            # [
       
  1398 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1399 \]                           #           ]
       
  1400 )
       
  1401 [\040\t]*                    # Nab whitespace.
       
  1402 (?:
       
  1403 \(                              #  (
       
  1404 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1405 (?:                                 #       (
       
  1406 (?:  \\ [^\x80-\xff]  |
       
  1407 \(                            #  (
       
  1408 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1409 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1410 \)                           #                       )
       
  1411 )    #         special
       
  1412 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1413 )*                                  #            )*
       
  1414 \)                             #                )
       
  1415 [\040\t]* )*    # If comment found, allow more spaces.
       
  1416 # optional trailing comments
       
  1417 (?:
       
  1418 \.
       
  1419 [\040\t]*                    # Nab whitespace.
       
  1420 (?:
       
  1421 \(                              #  (
       
  1422 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1423 (?:                                 #       (
       
  1424 (?:  \\ [^\x80-\xff]  |
       
  1425 \(                            #  (
       
  1426 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1427 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1428 \)                           #                       )
       
  1429 )    #         special
       
  1430 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1431 )*                                  #            )*
       
  1432 \)                             #                )
       
  1433 [\040\t]* )*    # If comment found, allow more spaces.
       
  1434 (?:
       
  1435 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1436 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1437 |
       
  1438 \[                            # [
       
  1439 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1440 \]                           #           ]
       
  1441 )
       
  1442 [\040\t]*                    # Nab whitespace.
       
  1443 (?:
       
  1444 \(                              #  (
       
  1445 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1446 (?:                                 #       (
       
  1447 (?:  \\ [^\x80-\xff]  |
       
  1448 \(                            #  (
       
  1449 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1450 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1451 \)                           #                       )
       
  1452 )    #         special
       
  1453 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1454 )*                                  #            )*
       
  1455 \)                             #                )
       
  1456 [\040\t]* )*    # If comment found, allow more spaces.
       
  1457 # optional trailing comments
       
  1458 )*
       
  1459 (?: ,
       
  1460 [\040\t]*                    # Nab whitespace.
       
  1461 (?:
       
  1462 \(                              #  (
       
  1463 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1464 (?:                                 #       (
       
  1465 (?:  \\ [^\x80-\xff]  |
       
  1466 \(                            #  (
       
  1467 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1468 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1469 \)                           #                       )
       
  1470 )    #         special
       
  1471 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1472 )*                                  #            )*
       
  1473 \)                             #                )
       
  1474 [\040\t]* )*    # If comment found, allow more spaces.
       
  1475 @
       
  1476 [\040\t]*                    # Nab whitespace.
       
  1477 (?:
       
  1478 \(                              #  (
       
  1479 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1480 (?:                                 #       (
       
  1481 (?:  \\ [^\x80-\xff]  |
       
  1482 \(                            #  (
       
  1483 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1484 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1485 \)                           #                       )
       
  1486 )    #         special
       
  1487 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1488 )*                                  #            )*
       
  1489 \)                             #                )
       
  1490 [\040\t]* )*    # If comment found, allow more spaces.
       
  1491 (?:
       
  1492 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1493 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1494 |
       
  1495 \[                            # [
       
  1496 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1497 \]                           #           ]
       
  1498 )
       
  1499 [\040\t]*                    # Nab whitespace.
       
  1500 (?:
       
  1501 \(                              #  (
       
  1502 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1503 (?:                                 #       (
       
  1504 (?:  \\ [^\x80-\xff]  |
       
  1505 \(                            #  (
       
  1506 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1507 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1508 \)                           #                       )
       
  1509 )    #         special
       
  1510 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1511 )*                                  #            )*
       
  1512 \)                             #                )
       
  1513 [\040\t]* )*    # If comment found, allow more spaces.
       
  1514 # optional trailing comments
       
  1515 (?:
       
  1516 \.
       
  1517 [\040\t]*                    # Nab whitespace.
       
  1518 (?:
       
  1519 \(                              #  (
       
  1520 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1521 (?:                                 #       (
       
  1522 (?:  \\ [^\x80-\xff]  |
       
  1523 \(                            #  (
       
  1524 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1525 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1526 \)                           #                       )
       
  1527 )    #         special
       
  1528 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1529 )*                                  #            )*
       
  1530 \)                             #                )
       
  1531 [\040\t]* )*    # If comment found, allow more spaces.
       
  1532 (?:
       
  1533 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1534 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1535 |
       
  1536 \[                            # [
       
  1537 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1538 \]                           #           ]
       
  1539 )
       
  1540 [\040\t]*                    # Nab whitespace.
       
  1541 (?:
       
  1542 \(                              #  (
       
  1543 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1544 (?:                                 #       (
       
  1545 (?:  \\ [^\x80-\xff]  |
       
  1546 \(                            #  (
       
  1547 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1548 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1549 \)                           #                       )
       
  1550 )    #         special
       
  1551 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1552 )*                                  #            )*
       
  1553 \)                             #                )
       
  1554 [\040\t]* )*    # If comment found, allow more spaces.
       
  1555 # optional trailing comments
       
  1556 )*
       
  1557 )*  # additional domains
       
  1558 :
       
  1559 [\040\t]*                    # Nab whitespace.
       
  1560 (?:
       
  1561 \(                              #  (
       
  1562 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1563 (?:                                 #       (
       
  1564 (?:  \\ [^\x80-\xff]  |
       
  1565 \(                            #  (
       
  1566 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1567 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1568 \)                           #                       )
       
  1569 )    #         special
       
  1570 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1571 )*                                  #            )*
       
  1572 \)                             #                )
       
  1573 [\040\t]* )*    # If comment found, allow more spaces.
       
  1574 # optional trailing comments
       
  1575 )?     #       optional route
       
  1576 (?:
       
  1577 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1578 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1579 # Atom
       
  1580 |                       #  or
       
  1581 "                                     # "
       
  1582 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1583 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1584 "                                     #        "
       
  1585 # Quoted string
       
  1586 )
       
  1587 [\040\t]*                    # Nab whitespace.
       
  1588 (?:
       
  1589 \(                              #  (
       
  1590 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1591 (?:                                 #       (
       
  1592 (?:  \\ [^\x80-\xff]  |
       
  1593 \(                            #  (
       
  1594 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1595 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1596 \)                           #                       )
       
  1597 )    #         special
       
  1598 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1599 )*                                  #            )*
       
  1600 \)                             #                )
       
  1601 [\040\t]* )*    # If comment found, allow more spaces.
       
  1602 (?:
       
  1603 \.
       
  1604 [\040\t]*                    # Nab whitespace.
       
  1605 (?:
       
  1606 \(                              #  (
       
  1607 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1608 (?:                                 #       (
       
  1609 (?:  \\ [^\x80-\xff]  |
       
  1610 \(                            #  (
       
  1611 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1612 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1613 \)                           #                       )
       
  1614 )    #         special
       
  1615 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1616 )*                                  #            )*
       
  1617 \)                             #                )
       
  1618 [\040\t]* )*    # If comment found, allow more spaces.
       
  1619 (?:
       
  1620 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1621 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1622 # Atom
       
  1623 |                       #  or
       
  1624 "                                     # "
       
  1625 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1626 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1627 "                                     #        "
       
  1628 # Quoted string
       
  1629 )
       
  1630 [\040\t]*                    # Nab whitespace.
       
  1631 (?:
       
  1632 \(                              #  (
       
  1633 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1634 (?:                                 #       (
       
  1635 (?:  \\ [^\x80-\xff]  |
       
  1636 \(                            #  (
       
  1637 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1638 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1639 \)                           #                       )
       
  1640 )    #         special
       
  1641 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1642 )*                                  #            )*
       
  1643 \)                             #                )
       
  1644 [\040\t]* )*    # If comment found, allow more spaces.
       
  1645 # additional words
       
  1646 )*
       
  1647 @
       
  1648 [\040\t]*                    # Nab whitespace.
       
  1649 (?:
       
  1650 \(                              #  (
       
  1651 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1652 (?:                                 #       (
       
  1653 (?:  \\ [^\x80-\xff]  |
       
  1654 \(                            #  (
       
  1655 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1656 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1657 \)                           #                       )
       
  1658 )    #         special
       
  1659 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1660 )*                                  #            )*
       
  1661 \)                             #                )
       
  1662 [\040\t]* )*    # If comment found, allow more spaces.
       
  1663 (?:
       
  1664 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1665 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1666 |
       
  1667 \[                            # [
       
  1668 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1669 \]                           #           ]
       
  1670 )
       
  1671 [\040\t]*                    # Nab whitespace.
       
  1672 (?:
       
  1673 \(                              #  (
       
  1674 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1675 (?:                                 #       (
       
  1676 (?:  \\ [^\x80-\xff]  |
       
  1677 \(                            #  (
       
  1678 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1679 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1680 \)                           #                       )
       
  1681 )    #         special
       
  1682 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1683 )*                                  #            )*
       
  1684 \)                             #                )
       
  1685 [\040\t]* )*    # If comment found, allow more spaces.
       
  1686 # optional trailing comments
       
  1687 (?:
       
  1688 \.
       
  1689 [\040\t]*                    # Nab whitespace.
       
  1690 (?:
       
  1691 \(                              #  (
       
  1692 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1693 (?:                                 #       (
       
  1694 (?:  \\ [^\x80-\xff]  |
       
  1695 \(                            #  (
       
  1696 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1697 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1698 \)                           #                       )
       
  1699 )    #         special
       
  1700 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1701 )*                                  #            )*
       
  1702 \)                             #                )
       
  1703 [\040\t]* )*    # If comment found, allow more spaces.
       
  1704 (?:
       
  1705 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1706 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1707 |
       
  1708 \[                            # [
       
  1709 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1710 \]                           #           ]
       
  1711 )
       
  1712 [\040\t]*                    # Nab whitespace.
       
  1713 (?:
       
  1714 \(                              #  (
       
  1715 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1716 (?:                                 #       (
       
  1717 (?:  \\ [^\x80-\xff]  |
       
  1718 \(                            #  (
       
  1719 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1720 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1721 \)                           #                       )
       
  1722 )    #         special
       
  1723 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1724 )*                                  #            )*
       
  1725 \)                             #                )
       
  1726 [\040\t]* )*    # If comment found, allow more spaces.
       
  1727 # optional trailing comments
       
  1728 )*
       
  1729 #       address spec
       
  1730 >                    #                 >
       
  1731 # name and address
       
  1732 )
       
  1733 /x
       
  1734     Alan Other <user\@dom.ain>
       
  1735  0: Alan Other <user@dom.ain>
       
  1736     <user\@dom.ain>
       
  1737  0: user@dom.ain
       
  1738     user\@dom.ain
       
  1739  0: user@dom.ain
       
  1740     \"A. Other\" <user.1234\@dom.ain> (a comment)
       
  1741  0: "A. Other" <user.1234@dom.ain>
       
  1742     A. Other <user.1234\@dom.ain> (a comment)
       
  1743  0:  Other <user.1234@dom.ain>
       
  1744     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
       
  1745  0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
       
  1746     A missing angle <user\@some.where
       
  1747  0: user@some.where
       
  1748     *** Failers
       
  1749 No match
       
  1750     The quick brown fox
       
  1751 No match
       
  1752 
       
  1753 /abc\0def\00pqr\000xyz\0000AB/
       
  1754     abc\0def\00pqr\000xyz\0000AB
       
  1755  0: abc\x00def\x00pqr\x00xyz\x000AB
       
  1756     abc456 abc\0def\00pqr\000xyz\0000ABCDE
       
  1757  0: abc\x00def\x00pqr\x00xyz\x000AB
       
  1758 
       
  1759 /abc\x0def\x00pqr\x000xyz\x0000AB/
       
  1760     abc\x0def\x00pqr\x000xyz\x0000AB
       
  1761  0: abc\x0def\x00pqr\x000xyz\x0000AB
       
  1762     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
       
  1763  0: abc\x0def\x00pqr\x000xyz\x0000AB
       
  1764 
       
  1765 /^[\000-\037]/
       
  1766     \0A
       
  1767  0: \x00
       
  1768     \01B
       
  1769  0: \x01
       
  1770     \037C
       
  1771  0: \x1f
       
  1772 
       
  1773 /\0*/
       
  1774     \0\0\0\0
       
  1775  0: \x00\x00\x00\x00
       
  1776 
       
  1777 /A\x0{2,3}Z/
       
  1778     The A\x0\x0Z
       
  1779  0: A\x00\x00Z
       
  1780     An A\0\x0\0Z
       
  1781  0: A\x00\x00\x00Z
       
  1782     *** Failers
       
  1783 No match
       
  1784     A\0Z
       
  1785 No match
       
  1786     A\0\x0\0\x0Z
       
  1787 No match
       
  1788 
       
  1789 /^(cow|)\1(bell)/
       
  1790     cowcowbell
       
  1791  0: cowcowbell
       
  1792  1: cow
       
  1793  2: bell
       
  1794     bell
       
  1795  0: bell
       
  1796  1: 
       
  1797  2: bell
       
  1798     *** Failers
       
  1799 No match
       
  1800     cowbell
       
  1801 No match
       
  1802 
       
  1803 /^\s/
       
  1804     \040abc
       
  1805  0:  
       
  1806     \x0cabc
       
  1807  0: \x0c
       
  1808     \nabc
       
  1809  0: \x0a
       
  1810     \rabc
       
  1811  0: \x0d
       
  1812     \tabc
       
  1813  0: \x09
       
  1814     *** Failers
       
  1815 No match
       
  1816     abc
       
  1817 No match
       
  1818 
       
  1819 /^a	b
       
  1820       c/x
       
  1821     abc
       
  1822  0: abc
       
  1823 
       
  1824 /^(a|)\1*b/
       
  1825     ab
       
  1826  0: ab
       
  1827  1: a
       
  1828     aaaab
       
  1829  0: aaaab
       
  1830  1: a
       
  1831     b
       
  1832  0: b
       
  1833  1: 
       
  1834     *** Failers
       
  1835 No match
       
  1836     acb
       
  1837 No match
       
  1838 
       
  1839 /^(a|)\1+b/
       
  1840     aab
       
  1841  0: aab
       
  1842  1: a
       
  1843     aaaab
       
  1844  0: aaaab
       
  1845  1: a
       
  1846     b
       
  1847  0: b
       
  1848  1: 
       
  1849     *** Failers
       
  1850 No match
       
  1851     ab
       
  1852 No match
       
  1853 
       
  1854 /^(a|)\1?b/
       
  1855     ab
       
  1856  0: ab
       
  1857  1: a
       
  1858     aab
       
  1859  0: aab
       
  1860  1: a
       
  1861     b
       
  1862  0: b
       
  1863  1: 
       
  1864     *** Failers
       
  1865 No match
       
  1866     acb
       
  1867 No match
       
  1868 
       
  1869 /^(a|)\1{2}b/
       
  1870     aaab
       
  1871  0: aaab
       
  1872  1: a
       
  1873     b
       
  1874  0: b
       
  1875  1: 
       
  1876     *** Failers
       
  1877 No match
       
  1878     ab
       
  1879 No match
       
  1880     aab
       
  1881 No match
       
  1882     aaaab
       
  1883 No match
       
  1884 
       
  1885 /^(a|)\1{2,3}b/
       
  1886     aaab
       
  1887  0: aaab
       
  1888  1: a
       
  1889     aaaab
       
  1890  0: aaaab
       
  1891  1: a
       
  1892     b
       
  1893  0: b
       
  1894  1: 
       
  1895     *** Failers
       
  1896 No match
       
  1897     ab
       
  1898 No match
       
  1899     aab
       
  1900 No match
       
  1901     aaaaab
       
  1902 No match
       
  1903 
       
  1904 /ab{1,3}bc/
       
  1905     abbbbc
       
  1906  0: abbbbc
       
  1907     abbbc
       
  1908  0: abbbc
       
  1909     abbc
       
  1910  0: abbc
       
  1911     *** Failers
       
  1912 No match
       
  1913     abc
       
  1914 No match
       
  1915     abbbbbc
       
  1916 No match
       
  1917 
       
  1918 /([^.]*)\.([^:]*):[T ]+(.*)/
       
  1919     track1.title:TBlah blah blah
       
  1920  0: track1.title:TBlah blah blah
       
  1921  1: track1
       
  1922  2: title
       
  1923  3: Blah blah blah
       
  1924 
       
  1925 /([^.]*)\.([^:]*):[T ]+(.*)/i
       
  1926     track1.title:TBlah blah blah
       
  1927  0: track1.title:TBlah blah blah
       
  1928  1: track1
       
  1929  2: title
       
  1930  3: Blah blah blah
       
  1931 
       
  1932 /([^.]*)\.([^:]*):[t ]+(.*)/i
       
  1933     track1.title:TBlah blah blah
       
  1934  0: track1.title:TBlah blah blah
       
  1935  1: track1
       
  1936  2: title
       
  1937  3: Blah blah blah
       
  1938 
       
  1939 /^[W-c]+$/
       
  1940     WXY_^abc
       
  1941  0: WXY_^abc
       
  1942     *** Failers
       
  1943 No match
       
  1944     wxy
       
  1945 No match
       
  1946 
       
  1947 /^[W-c]+$/i
       
  1948     WXY_^abc
       
  1949  0: WXY_^abc
       
  1950     wxy_^ABC
       
  1951  0: wxy_^ABC
       
  1952 
       
  1953 /^[\x3f-\x5F]+$/i
       
  1954     WXY_^abc
       
  1955  0: WXY_^abc
       
  1956     wxy_^ABC
       
  1957  0: wxy_^ABC
       
  1958 
       
  1959 /^abc$/m
       
  1960     abc
       
  1961  0: abc
       
  1962     qqq\nabc
       
  1963  0: abc
       
  1964     abc\nzzz
       
  1965  0: abc
       
  1966     qqq\nabc\nzzz
       
  1967  0: abc
       
  1968 
       
  1969 /^abc$/
       
  1970     abc
       
  1971  0: abc
       
  1972     *** Failers
       
  1973 No match
       
  1974     qqq\nabc
       
  1975 No match
       
  1976     abc\nzzz
       
  1977 No match
       
  1978     qqq\nabc\nzzz
       
  1979 No match
       
  1980 
       
  1981 /\Aabc\Z/m
       
  1982     abc
       
  1983  0: abc
       
  1984     abc\n 
       
  1985  0: abc
       
  1986     *** Failers
       
  1987 No match
       
  1988     qqq\nabc
       
  1989 No match
       
  1990     abc\nzzz
       
  1991 No match
       
  1992     qqq\nabc\nzzz
       
  1993 No match
       
  1994     
       
  1995 /\A(.)*\Z/s
       
  1996     abc\ndef
       
  1997  0: abc\x0adef
       
  1998  1: f
       
  1999 
       
  2000 /\A(.)*\Z/m
       
  2001     *** Failers
       
  2002  0: *** Failers
       
  2003  1: s
       
  2004     abc\ndef
       
  2005 No match
       
  2006 
       
  2007 /(?:b)|(?::+)/
       
  2008     b::c
       
  2009  0: b
       
  2010     c::b
       
  2011  0: ::
       
  2012 
       
  2013 /[-az]+/
       
  2014     az-
       
  2015  0: az-
       
  2016     *** Failers
       
  2017  0: a
       
  2018     b
       
  2019 No match
       
  2020 
       
  2021 /[az-]+/
       
  2022     za-
       
  2023  0: za-
       
  2024     *** Failers
       
  2025  0: a
       
  2026     b
       
  2027 No match
       
  2028 
       
  2029 /[a\-z]+/
       
  2030     a-z
       
  2031  0: a-z
       
  2032     *** Failers
       
  2033  0: a
       
  2034     b
       
  2035 No match
       
  2036 
       
  2037 /[a-z]+/
       
  2038     abcdxyz
       
  2039  0: abcdxyz
       
  2040 
       
  2041 /[\d-]+/
       
  2042     12-34
       
  2043  0: 12-34
       
  2044     *** Failers
       
  2045 No match
       
  2046     aaa
       
  2047 No match
       
  2048 
       
  2049 /[\d-z]+/
       
  2050     12-34z
       
  2051  0: 12-34z
       
  2052     *** Failers
       
  2053 No match
       
  2054     aaa
       
  2055 No match
       
  2056 
       
  2057 /\x5c/
       
  2058     \\
       
  2059  0: \
       
  2060 
       
  2061 /\x20Z/
       
  2062     the Zoo
       
  2063  0:  Z
       
  2064     *** Failers
       
  2065 No match
       
  2066     Zulu
       
  2067 No match
       
  2068 
       
  2069 /(abc)\1/i
       
  2070     abcabc
       
  2071  0: abcabc
       
  2072  1: abc
       
  2073     ABCabc
       
  2074  0: ABCabc
       
  2075  1: ABC
       
  2076     abcABC
       
  2077  0: abcABC
       
  2078  1: abc
       
  2079 
       
  2080 /ab{3cd/
       
  2081     ab{3cd
       
  2082  0: ab{3cd
       
  2083 
       
  2084 /ab{3,cd/
       
  2085     ab{3,cd
       
  2086  0: ab{3,cd
       
  2087 
       
  2088 /ab{3,4a}cd/
       
  2089     ab{3,4a}cd
       
  2090  0: ab{3,4a}cd
       
  2091 
       
  2092 /{4,5a}bc/
       
  2093     {4,5a}bc
       
  2094  0: {4,5a}bc
       
  2095 
       
  2096 /abc$/
       
  2097     abc
       
  2098  0: abc
       
  2099     abc\n
       
  2100  0: abc
       
  2101     *** Failers
       
  2102 No match
       
  2103     abc\ndef
       
  2104 No match
       
  2105 
       
  2106 /(abc)\123/
       
  2107     abc\x53
       
  2108  0: abcS
       
  2109  1: abc
       
  2110 
       
  2111 /(abc)\223/
       
  2112     abc\x93
       
  2113  0: abc\x93
       
  2114  1: abc
       
  2115 
       
  2116 /(abc)\323/
       
  2117     abc\xd3
       
  2118  0: abc\xd3
       
  2119  1: abc
       
  2120 
       
  2121 /(abc)\100/
       
  2122     abc\x40
       
  2123  0: abc@
       
  2124  1: abc
       
  2125     abc\100
       
  2126  0: abc@
       
  2127  1: abc
       
  2128 
       
  2129 /(abc)\1000/
       
  2130     abc\x400
       
  2131  0: abc@0
       
  2132  1: abc
       
  2133     abc\x40\x30
       
  2134  0: abc@0
       
  2135  1: abc
       
  2136     abc\1000
       
  2137  0: abc@0
       
  2138  1: abc
       
  2139     abc\100\x30
       
  2140  0: abc@0
       
  2141  1: abc
       
  2142     abc\100\060
       
  2143  0: abc@0
       
  2144  1: abc
       
  2145     abc\100\60
       
  2146  0: abc@0
       
  2147  1: abc
       
  2148 
       
  2149 /abc\81/
       
  2150     abc\081
       
  2151  0: abc\x0081
       
  2152     abc\0\x38\x31
       
  2153  0: abc\x0081
       
  2154 
       
  2155 /abc\91/
       
  2156     abc\091
       
  2157  0: abc\x0091
       
  2158     abc\0\x39\x31
       
  2159  0: abc\x0091
       
  2160 
       
  2161 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
       
  2162     abcdefghijkllS
       
  2163  0: abcdefghijkllS
       
  2164  1: a
       
  2165  2: b
       
  2166  3: c
       
  2167  4: d
       
  2168  5: e
       
  2169  6: f
       
  2170  7: g
       
  2171  8: h
       
  2172  9: i
       
  2173 10: j
       
  2174 11: k
       
  2175 12: l
       
  2176 
       
  2177 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
       
  2178     abcdefghijk\12S
       
  2179  0: abcdefghijk\x0aS
       
  2180  1: a
       
  2181  2: b
       
  2182  3: c
       
  2183  4: d
       
  2184  5: e
       
  2185  6: f
       
  2186  7: g
       
  2187  8: h
       
  2188  9: i
       
  2189 10: j
       
  2190 11: k
       
  2191 
       
  2192 /ab\idef/
       
  2193     abidef
       
  2194  0: abidef
       
  2195 
       
  2196 /a{0}bc/
       
  2197     bc
       
  2198  0: bc
       
  2199 
       
  2200 /(a|(bc)){0,0}?xyz/
       
  2201     xyz
       
  2202  0: xyz
       
  2203 
       
  2204 /abc[\10]de/
       
  2205     abc\010de
       
  2206  0: abc\x08de
       
  2207 
       
  2208 /abc[\1]de/
       
  2209     abc\1de
       
  2210  0: abc\x01de
       
  2211 
       
  2212 /(abc)[\1]de/
       
  2213     abc\1de
       
  2214  0: abc\x01de
       
  2215  1: abc
       
  2216 
       
  2217 /(?s)a.b/
       
  2218     a\nb
       
  2219  0: a\x0ab
       
  2220 
       
  2221 /^([^a])([^\b])([^c]*)([^d]{3,4})/
       
  2222     baNOTccccd
       
  2223  0: baNOTcccc
       
  2224  1: b
       
  2225  2: a
       
  2226  3: NOT
       
  2227  4: cccc
       
  2228     baNOTcccd
       
  2229  0: baNOTccc
       
  2230  1: b
       
  2231  2: a
       
  2232  3: NOT
       
  2233  4: ccc
       
  2234     baNOTccd
       
  2235  0: baNOTcc
       
  2236  1: b
       
  2237  2: a
       
  2238  3: NO
       
  2239  4: Tcc
       
  2240     bacccd
       
  2241  0: baccc
       
  2242  1: b
       
  2243  2: a
       
  2244  3: 
       
  2245  4: ccc
       
  2246     *** Failers
       
  2247  0: *** Failers
       
  2248  1: *
       
  2249  2: *
       
  2250  3: * Fail
       
  2251  4: ers
       
  2252     anything
       
  2253 No match
       
  2254     b\bc   
       
  2255 No match
       
  2256     baccd
       
  2257 No match
       
  2258 
       
  2259 /[^a]/
       
  2260     Abc
       
  2261  0: A
       
  2262   
       
  2263 /[^a]/i
       
  2264     Abc 
       
  2265  0: b
       
  2266 
       
  2267 /[^a]+/
       
  2268     AAAaAbc
       
  2269  0: AAA
       
  2270   
       
  2271 /[^a]+/i
       
  2272     AAAaAbc 
       
  2273  0: bc
       
  2274 
       
  2275 /[^a]+/
       
  2276     bbb\nccc
       
  2277  0: bbb\x0accc
       
  2278    
       
  2279 /[^k]$/
       
  2280     abc
       
  2281  0: c
       
  2282     *** Failers
       
  2283  0: s
       
  2284     abk   
       
  2285 No match
       
  2286    
       
  2287 /[^k]{2,3}$/
       
  2288     abc
       
  2289  0: abc
       
  2290     kbc
       
  2291  0: bc
       
  2292     kabc 
       
  2293  0: abc
       
  2294     *** Failers
       
  2295  0: ers
       
  2296     abk
       
  2297 No match
       
  2298     akb
       
  2299 No match
       
  2300     akk 
       
  2301 No match
       
  2302 
       
  2303 /^\d{8,}\@.+[^k]$/
       
  2304     12345678\@a.b.c.d
       
  2305  0: 12345678@a.b.c.d
       
  2306     123456789\@x.y.z
       
  2307  0: 123456789@x.y.z
       
  2308     *** Failers
       
  2309 No match
       
  2310     12345678\@x.y.uk
       
  2311 No match
       
  2312     1234567\@a.b.c.d       
       
  2313 No match
       
  2314 
       
  2315 /(a)\1{8,}/
       
  2316     aaaaaaaaa
       
  2317  0: aaaaaaaaa
       
  2318  1: a
       
  2319     aaaaaaaaaa
       
  2320  0: aaaaaaaaaa
       
  2321  1: a
       
  2322     *** Failers
       
  2323 No match
       
  2324     aaaaaaa   
       
  2325 No match
       
  2326 
       
  2327 /[^a]/
       
  2328     aaaabcd
       
  2329  0: b
       
  2330     aaAabcd 
       
  2331  0: A
       
  2332 
       
  2333 /[^a]/i
       
  2334     aaaabcd
       
  2335  0: b
       
  2336     aaAabcd 
       
  2337  0: b
       
  2338 
       
  2339 /[^az]/
       
  2340     aaaabcd
       
  2341  0: b
       
  2342     aaAabcd 
       
  2343  0: A
       
  2344 
       
  2345 /[^az]/i
       
  2346     aaaabcd
       
  2347  0: b
       
  2348     aaAabcd 
       
  2349  0: b
       
  2350 
       
  2351 /\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/
       
  2352  \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
       
  2353  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
       
  2354 
       
  2355 /P[^*]TAIRE[^*]{1,6}?LL/
       
  2356     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
       
  2357  0: PSTAIREISLL
       
  2358 
       
  2359 /P[^*]TAIRE[^*]{1,}?LL/
       
  2360     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
       
  2361  0: PSTAIREISLL
       
  2362 
       
  2363 /(\.\d\d[1-9]?)\d+/
       
  2364     1.230003938
       
  2365  0: .230003938
       
  2366  1: .23
       
  2367     1.875000282   
       
  2368  0: .875000282
       
  2369  1: .875
       
  2370     1.235  
       
  2371  0: .235
       
  2372  1: .23
       
  2373                   
       
  2374 /(\.\d\d((?=0)|\d(?=\d)))/
       
  2375     1.230003938      
       
  2376  0: .23
       
  2377  1: .23
       
  2378  2: 
       
  2379     1.875000282
       
  2380  0: .875
       
  2381  1: .875
       
  2382  2: 5
       
  2383     *** Failers 
       
  2384 No match
       
  2385     1.235 
       
  2386 No match
       
  2387     
       
  2388 /a(?)b/
       
  2389     ab 
       
  2390  0: ab
       
  2391  
       
  2392 /\b(foo)\s+(\w+)/i
       
  2393     Food is on the foo table
       
  2394  0: foo table
       
  2395  1: foo
       
  2396  2: table
       
  2397     
       
  2398 /foo(.*)bar/
       
  2399     The food is under the bar in the barn.
       
  2400  0: food is under the bar in the bar
       
  2401  1: d is under the bar in the 
       
  2402     
       
  2403 /foo(.*?)bar/  
       
  2404     The food is under the bar in the barn.
       
  2405  0: food is under the bar
       
  2406  1: d is under the 
       
  2407 
       
  2408 /(.*)(\d*)/
       
  2409     I have 2 numbers: 53147
       
  2410  0: I have 2 numbers: 53147
       
  2411  1: I have 2 numbers: 53147
       
  2412  2: 
       
  2413     
       
  2414 /(.*)(\d+)/
       
  2415     I have 2 numbers: 53147
       
  2416  0: I have 2 numbers: 53147
       
  2417  1: I have 2 numbers: 5314
       
  2418  2: 7
       
  2419  
       
  2420 /(.*?)(\d*)/
       
  2421     I have 2 numbers: 53147
       
  2422  0: 
       
  2423  1: 
       
  2424  2: 
       
  2425 
       
  2426 /(.*?)(\d+)/
       
  2427     I have 2 numbers: 53147
       
  2428  0: I have 2
       
  2429  1: I have 
       
  2430  2: 2
       
  2431 
       
  2432 /(.*)(\d+)$/
       
  2433     I have 2 numbers: 53147
       
  2434  0: I have 2 numbers: 53147
       
  2435  1: I have 2 numbers: 5314
       
  2436  2: 7
       
  2437 
       
  2438 /(.*?)(\d+)$/
       
  2439     I have 2 numbers: 53147
       
  2440  0: I have 2 numbers: 53147
       
  2441  1: I have 2 numbers: 
       
  2442  2: 53147
       
  2443 
       
  2444 /(.*)\b(\d+)$/
       
  2445     I have 2 numbers: 53147
       
  2446  0: I have 2 numbers: 53147
       
  2447  1: I have 2 numbers: 
       
  2448  2: 53147
       
  2449 
       
  2450 /(.*\D)(\d+)$/
       
  2451     I have 2 numbers: 53147
       
  2452  0: I have 2 numbers: 53147
       
  2453  1: I have 2 numbers: 
       
  2454  2: 53147
       
  2455 
       
  2456 /^\D*(?!123)/
       
  2457     ABC123
       
  2458  0: AB
       
  2459      
       
  2460 /^(\D*)(?=\d)(?!123)/
       
  2461     ABC445
       
  2462  0: ABC
       
  2463  1: ABC
       
  2464     *** Failers
       
  2465 No match
       
  2466     ABC123
       
  2467 No match
       
  2468     
       
  2469 /^[W-]46]/
       
  2470     W46]789 
       
  2471  0: W46]
       
  2472     -46]789
       
  2473  0: -46]
       
  2474     *** Failers
       
  2475 No match
       
  2476     Wall
       
  2477 No match
       
  2478     Zebra
       
  2479 No match
       
  2480     42
       
  2481 No match
       
  2482     [abcd] 
       
  2483 No match
       
  2484     ]abcd[
       
  2485 No match
       
  2486        
       
  2487 /^[W-\]46]/
       
  2488     W46]789 
       
  2489  0: W
       
  2490     Wall
       
  2491  0: W
       
  2492     Zebra
       
  2493  0: Z
       
  2494     Xylophone  
       
  2495  0: X
       
  2496     42
       
  2497  0: 4
       
  2498     [abcd] 
       
  2499  0: [
       
  2500     ]abcd[
       
  2501  0: ]
       
  2502     \\backslash 
       
  2503  0: \
       
  2504     *** Failers
       
  2505 No match
       
  2506     -46]789
       
  2507 No match
       
  2508     well
       
  2509 No match
       
  2510     
       
  2511 /\d\d\/\d\d\/\d\d\d\d/
       
  2512     01/01/2000
       
  2513  0: 01/01/2000
       
  2514 
       
  2515 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
       
  2516   word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  2517  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  2518   word cat dog elephant mussel cow horse canary baboon snake shark
       
  2519 No match
       
  2520 
       
  2521 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
       
  2522   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
       
  2523 No match
       
  2524 
       
  2525 /^(a){0,0}/
       
  2526     bcd
       
  2527  0: 
       
  2528     abc
       
  2529  0: 
       
  2530     aab     
       
  2531  0: 
       
  2532 
       
  2533 /^(a){0,1}/
       
  2534     bcd
       
  2535  0: 
       
  2536     abc
       
  2537  0: a
       
  2538  1: a
       
  2539     aab  
       
  2540  0: a
       
  2541  1: a
       
  2542 
       
  2543 /^(a){0,2}/
       
  2544     bcd
       
  2545  0: 
       
  2546     abc
       
  2547  0: a
       
  2548  1: a
       
  2549     aab  
       
  2550  0: aa
       
  2551  1: a
       
  2552 
       
  2553 /^(a){0,3}/
       
  2554     bcd
       
  2555  0: 
       
  2556     abc
       
  2557  0: a
       
  2558  1: a
       
  2559     aab
       
  2560  0: aa
       
  2561  1: a
       
  2562     aaa   
       
  2563  0: aaa
       
  2564  1: a
       
  2565 
       
  2566 /^(a){0,}/
       
  2567     bcd
       
  2568  0: 
       
  2569     abc
       
  2570  0: a
       
  2571  1: a
       
  2572     aab
       
  2573  0: aa
       
  2574  1: a
       
  2575     aaa
       
  2576  0: aaa
       
  2577  1: a
       
  2578     aaaaaaaa    
       
  2579  0: aaaaaaaa
       
  2580  1: a
       
  2581 
       
  2582 /^(a){1,1}/
       
  2583     bcd
       
  2584 No match
       
  2585     abc
       
  2586  0: a
       
  2587  1: a
       
  2588     aab  
       
  2589  0: a
       
  2590  1: a
       
  2591 
       
  2592 /^(a){1,2}/
       
  2593     bcd
       
  2594 No match
       
  2595     abc
       
  2596  0: a
       
  2597  1: a
       
  2598     aab  
       
  2599  0: aa
       
  2600  1: a
       
  2601 
       
  2602 /^(a){1,3}/
       
  2603     bcd
       
  2604 No match
       
  2605     abc
       
  2606  0: a
       
  2607  1: a
       
  2608     aab
       
  2609  0: aa
       
  2610  1: a
       
  2611     aaa   
       
  2612  0: aaa
       
  2613  1: a
       
  2614 
       
  2615 /^(a){1,}/
       
  2616     bcd
       
  2617 No match
       
  2618     abc
       
  2619  0: a
       
  2620  1: a
       
  2621     aab
       
  2622  0: aa
       
  2623  1: a
       
  2624     aaa
       
  2625  0: aaa
       
  2626  1: a
       
  2627     aaaaaaaa    
       
  2628  0: aaaaaaaa
       
  2629  1: a
       
  2630 
       
  2631 /.*\.gif/
       
  2632     borfle\nbib.gif\nno
       
  2633  0: bib.gif
       
  2634 
       
  2635 /.{0,}\.gif/
       
  2636     borfle\nbib.gif\nno
       
  2637  0: bib.gif
       
  2638 
       
  2639 /.*\.gif/m
       
  2640     borfle\nbib.gif\nno
       
  2641  0: bib.gif
       
  2642 
       
  2643 /.*\.gif/s
       
  2644     borfle\nbib.gif\nno
       
  2645  0: borfle\x0abib.gif
       
  2646 
       
  2647 /.*\.gif/ms
       
  2648     borfle\nbib.gif\nno
       
  2649  0: borfle\x0abib.gif
       
  2650     
       
  2651 /.*$/
       
  2652     borfle\nbib.gif\nno
       
  2653  0: no
       
  2654 
       
  2655 /.*$/m
       
  2656     borfle\nbib.gif\nno
       
  2657  0: borfle
       
  2658 
       
  2659 /.*$/s
       
  2660     borfle\nbib.gif\nno
       
  2661  0: borfle\x0abib.gif\x0ano
       
  2662 
       
  2663 /.*$/ms
       
  2664     borfle\nbib.gif\nno
       
  2665  0: borfle\x0abib.gif\x0ano
       
  2666     
       
  2667 /.*$/
       
  2668     borfle\nbib.gif\nno\n
       
  2669  0: no
       
  2670 
       
  2671 /.*$/m
       
  2672     borfle\nbib.gif\nno\n
       
  2673  0: borfle
       
  2674 
       
  2675 /.*$/s
       
  2676     borfle\nbib.gif\nno\n
       
  2677  0: borfle\x0abib.gif\x0ano\x0a
       
  2678 
       
  2679 /.*$/ms
       
  2680     borfle\nbib.gif\nno\n
       
  2681  0: borfle\x0abib.gif\x0ano\x0a
       
  2682     
       
  2683 /(.*X|^B)/
       
  2684     abcde\n1234Xyz
       
  2685  0: 1234X
       
  2686  1: 1234X
       
  2687     BarFoo 
       
  2688  0: B
       
  2689  1: B
       
  2690     *** Failers
       
  2691 No match
       
  2692     abcde\nBar  
       
  2693 No match
       
  2694 
       
  2695 /(.*X|^B)/m
       
  2696     abcde\n1234Xyz
       
  2697  0: 1234X
       
  2698  1: 1234X
       
  2699     BarFoo 
       
  2700  0: B
       
  2701  1: B
       
  2702     abcde\nBar  
       
  2703  0: B
       
  2704  1: B
       
  2705 
       
  2706 /(.*X|^B)/s
       
  2707     abcde\n1234Xyz
       
  2708  0: abcde\x0a1234X
       
  2709  1: abcde\x0a1234X
       
  2710     BarFoo 
       
  2711  0: B
       
  2712  1: B
       
  2713     *** Failers
       
  2714 No match
       
  2715     abcde\nBar  
       
  2716 No match
       
  2717 
       
  2718 /(.*X|^B)/ms
       
  2719     abcde\n1234Xyz
       
  2720  0: abcde\x0a1234X
       
  2721  1: abcde\x0a1234X
       
  2722     BarFoo 
       
  2723  0: B
       
  2724  1: B
       
  2725     abcde\nBar  
       
  2726  0: B
       
  2727  1: B
       
  2728 
       
  2729 /(?s)(.*X|^B)/
       
  2730     abcde\n1234Xyz
       
  2731  0: abcde\x0a1234X
       
  2732  1: abcde\x0a1234X
       
  2733     BarFoo 
       
  2734  0: B
       
  2735  1: B
       
  2736     *** Failers 
       
  2737 No match
       
  2738     abcde\nBar  
       
  2739 No match
       
  2740 
       
  2741 /(?s:.*X|^B)/
       
  2742     abcde\n1234Xyz
       
  2743  0: abcde\x0a1234X
       
  2744     BarFoo 
       
  2745  0: B
       
  2746     *** Failers 
       
  2747 No match
       
  2748     abcde\nBar  
       
  2749 No match
       
  2750 
       
  2751 /^.*B/
       
  2752     **** Failers
       
  2753 No match
       
  2754     abc\nB
       
  2755 No match
       
  2756      
       
  2757 /(?s)^.*B/
       
  2758     abc\nB
       
  2759  0: abc\x0aB
       
  2760 
       
  2761 /(?m)^.*B/
       
  2762     abc\nB
       
  2763  0: B
       
  2764      
       
  2765 /(?ms)^.*B/
       
  2766     abc\nB
       
  2767  0: abc\x0aB
       
  2768 
       
  2769 /(?ms)^B/
       
  2770     abc\nB
       
  2771  0: B
       
  2772 
       
  2773 /(?s)B$/
       
  2774     B\n
       
  2775  0: B
       
  2776 
       
  2777 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
       
  2778     123456654321
       
  2779  0: 123456654321
       
  2780   
       
  2781 /^\d\d\d\d\d\d\d\d\d\d\d\d/
       
  2782     123456654321 
       
  2783  0: 123456654321
       
  2784 
       
  2785 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
       
  2786     123456654321
       
  2787  0: 123456654321
       
  2788   
       
  2789 /^[abc]{12}/
       
  2790     abcabcabcabc
       
  2791  0: abcabcabcabc
       
  2792     
       
  2793 /^[a-c]{12}/
       
  2794     abcabcabcabc
       
  2795  0: abcabcabcabc
       
  2796     
       
  2797 /^(a|b|c){12}/
       
  2798     abcabcabcabc 
       
  2799  0: abcabcabcabc
       
  2800  1: c
       
  2801 
       
  2802 /^[abcdefghijklmnopqrstuvwxy0123456789]/
       
  2803     n
       
  2804  0: n
       
  2805     *** Failers 
       
  2806 No match
       
  2807     z 
       
  2808 No match
       
  2809 
       
  2810 /abcde{0,0}/
       
  2811     abcd
       
  2812  0: abcd
       
  2813     *** Failers
       
  2814 No match
       
  2815     abce  
       
  2816 No match
       
  2817 
       
  2818 /ab[cd]{0,0}e/
       
  2819     abe
       
  2820  0: abe
       
  2821     *** Failers
       
  2822 No match
       
  2823     abcde 
       
  2824 No match
       
  2825     
       
  2826 /ab(c){0,0}d/
       
  2827     abd
       
  2828  0: abd
       
  2829     *** Failers
       
  2830 No match
       
  2831     abcd   
       
  2832 No match
       
  2833 
       
  2834 /a(b*)/
       
  2835     a
       
  2836  0: a
       
  2837  1: 
       
  2838     ab
       
  2839  0: ab
       
  2840  1: b
       
  2841     abbbb
       
  2842  0: abbbb
       
  2843  1: bbbb
       
  2844     *** Failers
       
  2845  0: a
       
  2846  1: 
       
  2847     bbbbb    
       
  2848 No match
       
  2849     
       
  2850 /ab\d{0}e/
       
  2851     abe
       
  2852  0: abe
       
  2853     *** Failers
       
  2854 No match
       
  2855     ab1e   
       
  2856 No match
       
  2857     
       
  2858 /"([^\\"]+|\\.)*"/
       
  2859     the \"quick\" brown fox
       
  2860  0: "quick"
       
  2861  1: quick
       
  2862     \"the \\\"quick\\\" brown fox\" 
       
  2863  0: "the \"quick\" brown fox"
       
  2864  1:  brown fox
       
  2865 
       
  2866 /.*?/g+
       
  2867     abc
       
  2868  0: 
       
  2869  0+ abc
       
  2870  0: a
       
  2871  0+ bc
       
  2872  0: 
       
  2873  0+ bc
       
  2874  0: b
       
  2875  0+ c
       
  2876  0: 
       
  2877  0+ c
       
  2878  0: c
       
  2879  0+ 
       
  2880  0: 
       
  2881  0+ 
       
  2882   
       
  2883 /\b/g+
       
  2884     abc 
       
  2885  0: 
       
  2886  0+ abc
       
  2887  0: 
       
  2888  0+ 
       
  2889 
       
  2890 /\b/+g
       
  2891     abc 
       
  2892  0: 
       
  2893  0+ abc
       
  2894  0: 
       
  2895  0+ 
       
  2896 
       
  2897 //g
       
  2898     abc
       
  2899  0: 
       
  2900  0: 
       
  2901  0: 
       
  2902  0: 
       
  2903 
       
  2904 /<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
       
  2905   <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>
       
  2906  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>
       
  2907  1:  BGCOLOR='#DBE9E9'
       
  2908  2:  align=left valign=top
       
  2909  3: 43.
       
  2910  4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
       
  2911  5: 
       
  2912  6: 
       
  2913  7: <unset>
       
  2914  8:  align=left valign=top
       
  2915  9: Lega lstaff.com
       
  2916 10:  align=left valign=top
       
  2917 11: CA - Statewide
       
  2918 
       
  2919 /a[^a]b/
       
  2920     acb
       
  2921  0: acb
       
  2922     a\nb
       
  2923  0: a\x0ab
       
  2924     
       
  2925 /a.b/
       
  2926     acb
       
  2927  0: acb
       
  2928     *** Failers 
       
  2929 No match
       
  2930     a\nb   
       
  2931 No match
       
  2932     
       
  2933 /a[^a]b/s
       
  2934     acb
       
  2935  0: acb
       
  2936     a\nb  
       
  2937  0: a\x0ab
       
  2938     
       
  2939 /a.b/s
       
  2940     acb
       
  2941  0: acb
       
  2942     a\nb  
       
  2943  0: a\x0ab
       
  2944 
       
  2945 /^(b+?|a){1,2}?c/
       
  2946     bac
       
  2947  0: bac
       
  2948  1: a
       
  2949     bbac
       
  2950  0: bbac
       
  2951  1: a
       
  2952     bbbac
       
  2953  0: bbbac
       
  2954  1: a
       
  2955     bbbbac
       
  2956  0: bbbbac
       
  2957  1: a
       
  2958     bbbbbac 
       
  2959  0: bbbbbac
       
  2960  1: a
       
  2961 
       
  2962 /^(b+|a){1,2}?c/
       
  2963     bac
       
  2964  0: bac
       
  2965  1: a
       
  2966     bbac
       
  2967  0: bbac
       
  2968  1: a
       
  2969     bbbac
       
  2970  0: bbbac
       
  2971  1: a
       
  2972     bbbbac
       
  2973  0: bbbbac
       
  2974  1: a
       
  2975     bbbbbac 
       
  2976  0: bbbbbac
       
  2977  1: a
       
  2978     
       
  2979 /(?!\A)x/m
       
  2980     x\nb\n
       
  2981 No match
       
  2982     a\bx\n  
       
  2983  0: x
       
  2984     
       
  2985 /\x0{ab}/
       
  2986     \0{ab} 
       
  2987  0: \x00{ab}
       
  2988 
       
  2989 /(A|B)*?CD/
       
  2990     CD 
       
  2991  0: CD
       
  2992     
       
  2993 /(A|B)*CD/
       
  2994     CD 
       
  2995  0: CD
       
  2996 
       
  2997 /(AB)*?\1/
       
  2998     ABABAB
       
  2999  0: ABAB
       
  3000  1: AB
       
  3001 
       
  3002 /(AB)*\1/
       
  3003     ABABAB
       
  3004  0: ABABAB
       
  3005  1: AB
       
  3006     
       
  3007 /(?<!bar)foo/
       
  3008     foo
       
  3009  0: foo
       
  3010     catfood
       
  3011  0: foo
       
  3012     arfootle
       
  3013  0: foo
       
  3014     rfoosh
       
  3015  0: foo
       
  3016     *** Failers
       
  3017 No match
       
  3018     barfoo
       
  3019 No match
       
  3020     towbarfoo
       
  3021 No match
       
  3022 
       
  3023 /\w{3}(?<!bar)foo/
       
  3024     catfood
       
  3025  0: catfoo
       
  3026     *** Failers
       
  3027 No match
       
  3028     foo
       
  3029 No match
       
  3030     barfoo
       
  3031 No match
       
  3032     towbarfoo
       
  3033 No match
       
  3034 
       
  3035 /(?<=(foo)a)bar/
       
  3036     fooabar
       
  3037  0: bar
       
  3038  1: foo
       
  3039     *** Failers
       
  3040 No match
       
  3041     bar
       
  3042 No match
       
  3043     foobbar
       
  3044 No match
       
  3045       
       
  3046 /\Aabc\z/m
       
  3047     abc
       
  3048  0: abc
       
  3049     *** Failers
       
  3050 No match
       
  3051     abc\n   
       
  3052 No match
       
  3053     qqq\nabc
       
  3054 No match
       
  3055     abc\nzzz
       
  3056 No match
       
  3057     qqq\nabc\nzzz
       
  3058 No match
       
  3059 
       
  3060 "(?>.*/)foo"
       
  3061     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
       
  3062 No match
       
  3063 
       
  3064 "(?>.*/)foo"
       
  3065     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
       
  3066  0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
       
  3067 
       
  3068 /(?>(\.\d\d[1-9]?))\d+/
       
  3069     1.230003938
       
  3070  0: .230003938
       
  3071  1: .23
       
  3072     1.875000282
       
  3073  0: .875000282
       
  3074  1: .875
       
  3075     *** Failers 
       
  3076 No match
       
  3077     1.235 
       
  3078 No match
       
  3079 
       
  3080 /^((?>\w+)|(?>\s+))*$/
       
  3081     now is the time for all good men to come to the aid of the party
       
  3082  0: now is the time for all good men to come to the aid of the party
       
  3083  1: party
       
  3084     *** Failers
       
  3085 No match
       
  3086     this is not a line with only words and spaces!
       
  3087 No match
       
  3088     
       
  3089 /(\d+)(\w)/
       
  3090     12345a
       
  3091  0: 12345a
       
  3092  1: 12345
       
  3093  2: a
       
  3094     12345+ 
       
  3095  0: 12345
       
  3096  1: 1234
       
  3097  2: 5
       
  3098 
       
  3099 /((?>\d+))(\w)/
       
  3100     12345a
       
  3101  0: 12345a
       
  3102  1: 12345
       
  3103  2: a
       
  3104     *** Failers
       
  3105 No match
       
  3106     12345+ 
       
  3107 No match
       
  3108 
       
  3109 /(?>a+)b/
       
  3110     aaab
       
  3111  0: aaab
       
  3112 
       
  3113 /((?>a+)b)/
       
  3114     aaab
       
  3115  0: aaab
       
  3116  1: aaab
       
  3117 
       
  3118 /(?>(a+))b/
       
  3119     aaab
       
  3120  0: aaab
       
  3121  1: aaa
       
  3122 
       
  3123 /(?>b)+/
       
  3124     aaabbbccc
       
  3125  0: bbb
       
  3126 
       
  3127 /(?>a+|b+|c+)*c/
       
  3128     aaabbbbccccd
       
  3129  0: aaabbbbc
       
  3130 
       
  3131 /((?>[^()]+)|\([^()]*\))+/
       
  3132     ((abc(ade)ufh()()x
       
  3133  0: abc(ade)ufh()()x
       
  3134  1: x
       
  3135     
       
  3136 /\(((?>[^()]+)|\([^()]+\))+\)/ 
       
  3137     (abc)
       
  3138  0: (abc)
       
  3139  1: abc
       
  3140     (abc(def)xyz)
       
  3141  0: (abc(def)xyz)
       
  3142  1: xyz
       
  3143     *** Failers
       
  3144 No match
       
  3145     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
       
  3146 No match
       
  3147 
       
  3148 /a(?-i)b/i
       
  3149     ab
       
  3150  0: ab
       
  3151     Ab
       
  3152  0: Ab
       
  3153     *** Failers 
       
  3154 No match
       
  3155     aB
       
  3156 No match
       
  3157     AB
       
  3158 No match
       
  3159         
       
  3160 /(a (?x)b c)d e/
       
  3161     a bcd e
       
  3162  0: a bcd e
       
  3163  1: a bc
       
  3164     *** Failers
       
  3165 No match
       
  3166     a b cd e
       
  3167 No match
       
  3168     abcd e   
       
  3169 No match
       
  3170     a bcde 
       
  3171 No match
       
  3172  
       
  3173 /(a b(?x)c d (?-x)e f)/
       
  3174     a bcde f
       
  3175  0: a bcde f
       
  3176  1: a bcde f
       
  3177     *** Failers
       
  3178 No match
       
  3179     abcdef  
       
  3180 No match
       
  3181 
       
  3182 /(a(?i)b)c/
       
  3183     abc
       
  3184  0: abc
       
  3185  1: ab
       
  3186     aBc
       
  3187  0: aBc
       
  3188  1: aB
       
  3189     *** Failers
       
  3190 No match
       
  3191     abC
       
  3192 No match
       
  3193     aBC  
       
  3194 No match
       
  3195     Abc
       
  3196 No match
       
  3197     ABc
       
  3198 No match
       
  3199     ABC
       
  3200 No match
       
  3201     AbC
       
  3202 No match
       
  3203     
       
  3204 /a(?i:b)c/
       
  3205     abc
       
  3206  0: abc
       
  3207     aBc
       
  3208  0: aBc
       
  3209     *** Failers 
       
  3210 No match
       
  3211     ABC
       
  3212 No match
       
  3213     abC
       
  3214 No match
       
  3215     aBC
       
  3216 No match
       
  3217     
       
  3218 /a(?i:b)*c/
       
  3219     aBc
       
  3220  0: aBc
       
  3221     aBBc
       
  3222  0: aBBc
       
  3223     *** Failers 
       
  3224 No match
       
  3225     aBC
       
  3226 No match
       
  3227     aBBC
       
  3228 No match
       
  3229     
       
  3230 /a(?=b(?i)c)\w\wd/
       
  3231     abcd
       
  3232  0: abcd
       
  3233     abCd
       
  3234  0: abCd
       
  3235     *** Failers
       
  3236 No match
       
  3237     aBCd
       
  3238 No match
       
  3239     abcD     
       
  3240 No match
       
  3241     
       
  3242 /(?s-i:more.*than).*million/i
       
  3243     more than million
       
  3244  0: more than million
       
  3245     more than MILLION
       
  3246  0: more than MILLION
       
  3247     more \n than Million 
       
  3248  0: more \x0a than Million
       
  3249     *** Failers
       
  3250 No match
       
  3251     MORE THAN MILLION    
       
  3252 No match
       
  3253     more \n than \n million 
       
  3254 No match
       
  3255 
       
  3256 /(?:(?s-i)more.*than).*million/i
       
  3257     more than million
       
  3258  0: more than million
       
  3259     more than MILLION
       
  3260  0: more than MILLION
       
  3261     more \n than Million 
       
  3262  0: more \x0a than Million
       
  3263     *** Failers
       
  3264 No match
       
  3265     MORE THAN MILLION    
       
  3266 No match
       
  3267     more \n than \n million 
       
  3268 No match
       
  3269     
       
  3270 /(?>a(?i)b+)+c/ 
       
  3271     abc
       
  3272  0: abc
       
  3273     aBbc
       
  3274  0: aBbc
       
  3275     aBBc 
       
  3276  0: aBBc
       
  3277     *** Failers
       
  3278 No match
       
  3279     Abc
       
  3280 No match
       
  3281     abAb    
       
  3282 No match
       
  3283     abbC 
       
  3284 No match
       
  3285     
       
  3286 /(?=a(?i)b)\w\wc/
       
  3287     abc
       
  3288  0: abc
       
  3289     aBc
       
  3290  0: aBc
       
  3291     *** Failers
       
  3292 No match
       
  3293     Ab 
       
  3294 No match
       
  3295     abC
       
  3296 No match
       
  3297     aBC     
       
  3298 No match
       
  3299     
       
  3300 /(?<=a(?i)b)(\w\w)c/
       
  3301     abxxc
       
  3302  0: xxc
       
  3303  1: xx
       
  3304     aBxxc
       
  3305  0: xxc
       
  3306  1: xx
       
  3307     *** Failers
       
  3308 No match
       
  3309     Abxxc
       
  3310 No match
       
  3311     ABxxc
       
  3312 No match
       
  3313     abxxC      
       
  3314 No match
       
  3315 
       
  3316 /(?:(a)|b)(?(1)A|B)/
       
  3317     aA
       
  3318  0: aA
       
  3319  1: a
       
  3320     bB
       
  3321  0: bB
       
  3322     *** Failers
       
  3323 No match
       
  3324     aB
       
  3325 No match
       
  3326     bA    
       
  3327 No match
       
  3328 
       
  3329 /^(a)?(?(1)a|b)+$/
       
  3330     aa
       
  3331  0: aa
       
  3332  1: a
       
  3333     b
       
  3334  0: b
       
  3335     bb  
       
  3336  0: bb
       
  3337     *** Failers
       
  3338 No match
       
  3339     ab   
       
  3340 No match
       
  3341 
       
  3342 /^(?(?=abc)\w{3}:|\d\d)$/
       
  3343     abc:
       
  3344  0: abc:
       
  3345     12
       
  3346  0: 12
       
  3347     *** Failers
       
  3348 No match
       
  3349     123
       
  3350 No match
       
  3351     xyz    
       
  3352 No match
       
  3353 
       
  3354 /^(?(?!abc)\d\d|\w{3}:)$/
       
  3355     abc:
       
  3356  0: abc:
       
  3357     12
       
  3358  0: 12
       
  3359     *** Failers
       
  3360 No match
       
  3361     123
       
  3362 No match
       
  3363     xyz    
       
  3364 No match
       
  3365     
       
  3366 /(?(?<=foo)bar|cat)/
       
  3367     foobar
       
  3368  0: bar
       
  3369     cat
       
  3370  0: cat
       
  3371     fcat
       
  3372  0: cat
       
  3373     focat   
       
  3374  0: cat
       
  3375     *** Failers
       
  3376 No match
       
  3377     foocat  
       
  3378 No match
       
  3379 
       
  3380 /(?(?<!foo)cat|bar)/
       
  3381     foobar
       
  3382  0: bar
       
  3383     cat
       
  3384  0: cat
       
  3385     fcat
       
  3386  0: cat
       
  3387     focat   
       
  3388  0: cat
       
  3389     *** Failers
       
  3390 No match
       
  3391     foocat  
       
  3392 No match
       
  3393 
       
  3394 /( \( )? [^()]+ (?(1) \) |) /x
       
  3395     abcd
       
  3396  0: abcd
       
  3397     (abcd)
       
  3398  0: (abcd)
       
  3399  1: (
       
  3400     the quick (abcd) fox
       
  3401  0: the quick 
       
  3402     (abcd   
       
  3403  0: abcd
       
  3404 
       
  3405 /( \( )? [^()]+ (?(1) \) ) /x
       
  3406     abcd
       
  3407  0: abcd
       
  3408     (abcd)
       
  3409  0: (abcd)
       
  3410  1: (
       
  3411     the quick (abcd) fox
       
  3412  0: the quick 
       
  3413     (abcd   
       
  3414  0: abcd
       
  3415 
       
  3416 /^(?(2)a|(1)(2))+$/
       
  3417     12
       
  3418  0: 12
       
  3419  1: 1
       
  3420  2: 2
       
  3421     12a
       
  3422  0: 12a
       
  3423  1: 1
       
  3424  2: 2
       
  3425     12aa
       
  3426  0: 12aa
       
  3427  1: 1
       
  3428  2: 2
       
  3429     *** Failers
       
  3430 No match
       
  3431     1234    
       
  3432 No match
       
  3433 
       
  3434 /((?i)blah)\s+\1/
       
  3435     blah blah
       
  3436  0: blah blah
       
  3437  1: blah
       
  3438     BLAH BLAH
       
  3439  0: BLAH BLAH
       
  3440  1: BLAH
       
  3441     Blah Blah
       
  3442  0: Blah Blah
       
  3443  1: Blah
       
  3444     blaH blaH
       
  3445  0: blaH blaH
       
  3446  1: blaH
       
  3447     *** Failers
       
  3448 No match
       
  3449     blah BLAH
       
  3450 No match
       
  3451     Blah blah      
       
  3452 No match
       
  3453     blaH blah 
       
  3454 No match
       
  3455 
       
  3456 /((?i)blah)\s+(?i:\1)/
       
  3457     blah blah
       
  3458  0: blah blah
       
  3459  1: blah
       
  3460     BLAH BLAH
       
  3461  0: BLAH BLAH
       
  3462  1: BLAH
       
  3463     Blah Blah
       
  3464  0: Blah Blah
       
  3465  1: Blah
       
  3466     blaH blaH
       
  3467  0: blaH blaH
       
  3468  1: blaH
       
  3469     blah BLAH
       
  3470  0: blah BLAH
       
  3471  1: blah
       
  3472     Blah blah      
       
  3473  0: Blah blah
       
  3474  1: Blah
       
  3475     blaH blah 
       
  3476  0: blaH blah
       
  3477  1: blaH
       
  3478 
       
  3479 /(?>a*)*/
       
  3480     a
       
  3481  0: a
       
  3482     aa
       
  3483  0: aa
       
  3484     aaaa
       
  3485  0: aaaa
       
  3486     
       
  3487 /(abc|)+/
       
  3488     abc
       
  3489  0: abc
       
  3490  1: 
       
  3491     abcabc
       
  3492  0: abcabc
       
  3493  1: 
       
  3494     abcabcabc
       
  3495  0: abcabcabc
       
  3496  1: 
       
  3497     xyz      
       
  3498  0: 
       
  3499  1: 
       
  3500 
       
  3501 /([a]*)*/
       
  3502     a
       
  3503  0: a
       
  3504  1: 
       
  3505     aaaaa 
       
  3506  0: aaaaa
       
  3507  1: 
       
  3508  
       
  3509 /([ab]*)*/
       
  3510     a
       
  3511  0: a
       
  3512  1: 
       
  3513     b
       
  3514  0: b
       
  3515  1: 
       
  3516     ababab
       
  3517  0: ababab
       
  3518  1: 
       
  3519     aaaabcde
       
  3520  0: aaaab
       
  3521  1: 
       
  3522     bbbb    
       
  3523  0: bbbb
       
  3524  1: 
       
  3525  
       
  3526 /([^a]*)*/
       
  3527     b
       
  3528  0: b
       
  3529  1: 
       
  3530     bbbb
       
  3531  0: bbbb
       
  3532  1: 
       
  3533     aaa   
       
  3534  0: 
       
  3535  1: 
       
  3536  
       
  3537 /([^ab]*)*/
       
  3538     cccc
       
  3539  0: cccc
       
  3540  1: 
       
  3541     abab  
       
  3542  0: 
       
  3543  1: 
       
  3544  
       
  3545 /([a]*?)*/
       
  3546     a
       
  3547  0: 
       
  3548  1: 
       
  3549     aaaa 
       
  3550  0: 
       
  3551  1: 
       
  3552  
       
  3553 /([ab]*?)*/
       
  3554     a
       
  3555  0: 
       
  3556  1: 
       
  3557     b
       
  3558  0: 
       
  3559  1: 
       
  3560     abab
       
  3561  0: 
       
  3562  1: 
       
  3563     baba   
       
  3564  0: 
       
  3565  1: 
       
  3566  
       
  3567 /([^a]*?)*/
       
  3568     b
       
  3569  0: 
       
  3570  1: 
       
  3571     bbbb
       
  3572  0: 
       
  3573  1: 
       
  3574     aaa   
       
  3575  0: 
       
  3576  1: 
       
  3577  
       
  3578 /([^ab]*?)*/
       
  3579     c
       
  3580  0: 
       
  3581  1: 
       
  3582     cccc
       
  3583  0: 
       
  3584  1: 
       
  3585     baba   
       
  3586  0: 
       
  3587  1: 
       
  3588  
       
  3589 /(?>a*)*/
       
  3590     a
       
  3591  0: a
       
  3592     aaabcde 
       
  3593  0: aaa
       
  3594  
       
  3595 /((?>a*))*/
       
  3596     aaaaa
       
  3597  0: aaaaa
       
  3598  1: 
       
  3599     aabbaa 
       
  3600  0: aa
       
  3601  1: 
       
  3602  
       
  3603 /((?>a*?))*/
       
  3604     aaaaa
       
  3605  0: 
       
  3606  1: 
       
  3607     aabbaa 
       
  3608  0: 
       
  3609  1: 
       
  3610 
       
  3611 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
       
  3612     12-sep-98
       
  3613  0: 12-sep-98
       
  3614     12-09-98
       
  3615  0: 12-09-98
       
  3616     *** Failers
       
  3617 No match
       
  3618     sep-12-98
       
  3619 No match
       
  3620         
       
  3621 /(?<=(foo))bar\1/
       
  3622     foobarfoo
       
  3623  0: barfoo
       
  3624  1: foo
       
  3625     foobarfootling 
       
  3626  0: barfoo
       
  3627  1: foo
       
  3628     *** Failers
       
  3629 No match
       
  3630     foobar
       
  3631 No match
       
  3632     barfoo   
       
  3633 No match
       
  3634 
       
  3635 /(?i:saturday|sunday)/
       
  3636     saturday
       
  3637  0: saturday
       
  3638     sunday
       
  3639  0: sunday
       
  3640     Saturday
       
  3641  0: Saturday
       
  3642     Sunday
       
  3643  0: Sunday
       
  3644     SATURDAY
       
  3645  0: SATURDAY
       
  3646     SUNDAY
       
  3647  0: SUNDAY
       
  3648     SunDay
       
  3649  0: SunDay
       
  3650     
       
  3651 /(a(?i)bc|BB)x/
       
  3652     abcx
       
  3653  0: abcx
       
  3654  1: abc
       
  3655     aBCx
       
  3656  0: aBCx
       
  3657  1: aBC
       
  3658     bbx
       
  3659  0: bbx
       
  3660  1: bb
       
  3661     BBx
       
  3662  0: BBx
       
  3663  1: BB
       
  3664     *** Failers
       
  3665 No match
       
  3666     abcX
       
  3667 No match
       
  3668     aBCX
       
  3669 No match
       
  3670     bbX
       
  3671 No match
       
  3672     BBX               
       
  3673 No match
       
  3674 
       
  3675 /^([ab](?i)[cd]|[ef])/
       
  3676     ac
       
  3677  0: ac
       
  3678  1: ac
       
  3679     aC
       
  3680  0: aC
       
  3681  1: aC
       
  3682     bD
       
  3683  0: bD
       
  3684  1: bD
       
  3685     elephant
       
  3686  0: e
       
  3687  1: e
       
  3688     Europe 
       
  3689  0: E
       
  3690  1: E
       
  3691     frog
       
  3692  0: f
       
  3693  1: f
       
  3694     France
       
  3695  0: F
       
  3696  1: F
       
  3697     *** Failers
       
  3698 No match
       
  3699     Africa     
       
  3700 No match
       
  3701 
       
  3702 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
       
  3703     ab
       
  3704  0: ab
       
  3705  1: ab
       
  3706     aBd
       
  3707  0: aBd
       
  3708  1: aBd
       
  3709     xy
       
  3710  0: xy
       
  3711  1: xy
       
  3712     xY
       
  3713  0: xY
       
  3714  1: xY
       
  3715     zebra
       
  3716  0: z
       
  3717  1: z
       
  3718     Zambesi
       
  3719  0: Z
       
  3720  1: Z
       
  3721     *** Failers
       
  3722 No match
       
  3723     aCD  
       
  3724 No match
       
  3725     XY  
       
  3726 No match
       
  3727 
       
  3728 /(?<=foo\n)^bar/m
       
  3729     foo\nbar
       
  3730  0: bar
       
  3731     *** Failers
       
  3732 No match
       
  3733     bar
       
  3734 No match
       
  3735     baz\nbar   
       
  3736 No match
       
  3737 
       
  3738 /(?<=(?<!foo)bar)baz/
       
  3739     barbaz
       
  3740  0: baz
       
  3741     barbarbaz 
       
  3742  0: baz
       
  3743     koobarbaz 
       
  3744  0: baz
       
  3745     *** Failers
       
  3746 No match
       
  3747     baz
       
  3748 No match
       
  3749     foobarbaz 
       
  3750 No match
       
  3751 
       
  3752 /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
       
  3753 /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
       
  3754 No match
       
  3755 /where it does set $1 to aa when matching aaaaaa./
       
  3756 No match
       
  3757 
       
  3758 /^(a\1?){4}$/
       
  3759     a
       
  3760 No match
       
  3761     aa
       
  3762 No match
       
  3763     aaa
       
  3764 No match
       
  3765     aaaa
       
  3766  0: aaaa
       
  3767  1: a
       
  3768     aaaaa
       
  3769  0: aaaaa
       
  3770  1: a
       
  3771     aaaaaaa
       
  3772  0: aaaaaaa
       
  3773  1: a
       
  3774     aaaaaaaa
       
  3775 No match
       
  3776     aaaaaaaaa
       
  3777 No match
       
  3778     aaaaaaaaaa
       
  3779  0: aaaaaaaaaa
       
  3780  1: aaaa
       
  3781     aaaaaaaaaaa
       
  3782 No match
       
  3783     aaaaaaaaaaaa
       
  3784 No match
       
  3785     aaaaaaaaaaaaa
       
  3786 No match
       
  3787     aaaaaaaaaaaaaa
       
  3788 No match
       
  3789     aaaaaaaaaaaaaaa
       
  3790 No match
       
  3791     aaaaaaaaaaaaaaaa               
       
  3792 No match
       
  3793 
       
  3794 /^(a\1?)(a\1?)(a\2?)(a\3?)$/
       
  3795     a
       
  3796 No match
       
  3797     aa
       
  3798 No match
       
  3799     aaa
       
  3800 No match
       
  3801     aaaa
       
  3802  0: aaaa
       
  3803  1: a
       
  3804  2: a
       
  3805  3: a
       
  3806  4: a
       
  3807     aaaaa
       
  3808  0: aaaaa
       
  3809  1: a
       
  3810  2: aa
       
  3811  3: a
       
  3812  4: a
       
  3813     aaaaaa
       
  3814  0: aaaaaa
       
  3815  1: a
       
  3816  2: aa
       
  3817  3: a
       
  3818  4: aa
       
  3819     aaaaaaa
       
  3820  0: aaaaaaa
       
  3821  1: a
       
  3822  2: aa
       
  3823  3: aaa
       
  3824  4: a
       
  3825     aaaaaaaa
       
  3826 No match
       
  3827     aaaaaaaaa
       
  3828 No match
       
  3829     aaaaaaaaaa
       
  3830  0: aaaaaaaaaa
       
  3831  1: a
       
  3832  2: aa
       
  3833  3: aaa
       
  3834  4: aaaa
       
  3835     aaaaaaaaaaa
       
  3836 No match
       
  3837     aaaaaaaaaaaa
       
  3838 No match
       
  3839     aaaaaaaaaaaaa
       
  3840 No match
       
  3841     aaaaaaaaaaaaaa
       
  3842 No match
       
  3843     aaaaaaaaaaaaaaa
       
  3844 No match
       
  3845     aaaaaaaaaaaaaaaa               
       
  3846 No match
       
  3847 
       
  3848 /The following tests are taken from the Perl 5.005 test suite; some of them/
       
  3849 /are compatible with 5.004, but I'd rather not have to sort them out./
       
  3850 No match
       
  3851 
       
  3852 /abc/
       
  3853     abc
       
  3854  0: abc
       
  3855     xabcy
       
  3856  0: abc
       
  3857     ababc
       
  3858  0: abc
       
  3859     *** Failers
       
  3860 No match
       
  3861     xbc
       
  3862 No match
       
  3863     axc
       
  3864 No match
       
  3865     abx
       
  3866 No match
       
  3867 
       
  3868 /ab*c/
       
  3869     abc
       
  3870  0: abc
       
  3871 
       
  3872 /ab*bc/
       
  3873     abc
       
  3874  0: abc
       
  3875     abbc
       
  3876  0: abbc
       
  3877     abbbbc
       
  3878  0: abbbbc
       
  3879 
       
  3880 /.{1}/
       
  3881     abbbbc
       
  3882  0: a
       
  3883 
       
  3884 /.{3,4}/
       
  3885     abbbbc
       
  3886  0: abbb
       
  3887 
       
  3888 /ab{0,}bc/
       
  3889     abbbbc
       
  3890  0: abbbbc
       
  3891 
       
  3892 /ab+bc/
       
  3893     abbc
       
  3894  0: abbc
       
  3895     *** Failers
       
  3896 No match
       
  3897     abc
       
  3898 No match
       
  3899     abq
       
  3900 No match
       
  3901 
       
  3902 /ab{1,}bc/
       
  3903 
       
  3904 /ab+bc/
       
  3905     abbbbc
       
  3906  0: abbbbc
       
  3907 
       
  3908 /ab{1,}bc/
       
  3909     abbbbc
       
  3910  0: abbbbc
       
  3911 
       
  3912 /ab{1,3}bc/
       
  3913     abbbbc
       
  3914  0: abbbbc
       
  3915 
       
  3916 /ab{3,4}bc/
       
  3917     abbbbc
       
  3918  0: abbbbc
       
  3919 
       
  3920 /ab{4,5}bc/
       
  3921     *** Failers
       
  3922 No match
       
  3923     abq
       
  3924 No match
       
  3925     abbbbc
       
  3926 No match
       
  3927 
       
  3928 /ab?bc/
       
  3929     abbc
       
  3930  0: abbc
       
  3931     abc
       
  3932  0: abc
       
  3933 
       
  3934 /ab{0,1}bc/
       
  3935     abc
       
  3936  0: abc
       
  3937 
       
  3938 /ab?bc/
       
  3939 
       
  3940 /ab?c/
       
  3941     abc
       
  3942  0: abc
       
  3943 
       
  3944 /ab{0,1}c/
       
  3945     abc
       
  3946  0: abc
       
  3947 
       
  3948 /^abc$/
       
  3949     abc
       
  3950  0: abc
       
  3951     *** Failers
       
  3952 No match
       
  3953     abbbbc
       
  3954 No match
       
  3955     abcc
       
  3956 No match
       
  3957 
       
  3958 /^abc/
       
  3959     abcc
       
  3960  0: abc
       
  3961 
       
  3962 /^abc$/
       
  3963 
       
  3964 /abc$/
       
  3965     aabc
       
  3966  0: abc
       
  3967     *** Failers
       
  3968 No match
       
  3969     aabc
       
  3970  0: abc
       
  3971     aabcd
       
  3972 No match
       
  3973 
       
  3974 /^/
       
  3975     abc
       
  3976  0: 
       
  3977 
       
  3978 /$/
       
  3979     abc
       
  3980  0: 
       
  3981 
       
  3982 /a.c/
       
  3983     abc
       
  3984  0: abc
       
  3985     axc
       
  3986  0: axc
       
  3987 
       
  3988 /a.*c/
       
  3989     axyzc
       
  3990  0: axyzc
       
  3991 
       
  3992 /a[bc]d/
       
  3993     abd
       
  3994  0: abd
       
  3995     *** Failers
       
  3996 No match
       
  3997     axyzd
       
  3998 No match
       
  3999     abc
       
  4000 No match
       
  4001 
       
  4002 /a[b-d]e/
       
  4003     ace
       
  4004  0: ace
       
  4005 
       
  4006 /a[b-d]/
       
  4007     aac
       
  4008  0: ac
       
  4009 
       
  4010 /a[-b]/
       
  4011     a-
       
  4012  0: a-
       
  4013 
       
  4014 /a[b-]/
       
  4015     a-
       
  4016  0: a-
       
  4017 
       
  4018 /a]/
       
  4019     a]
       
  4020  0: a]
       
  4021 
       
  4022 /a[]]b/
       
  4023     a]b
       
  4024  0: a]b
       
  4025 
       
  4026 /a[^bc]d/
       
  4027     aed
       
  4028  0: aed
       
  4029     *** Failers
       
  4030 No match
       
  4031     abd
       
  4032 No match
       
  4033     abd
       
  4034 No match
       
  4035 
       
  4036 /a[^-b]c/
       
  4037     adc
       
  4038  0: adc
       
  4039 
       
  4040 /a[^]b]c/
       
  4041     adc
       
  4042  0: adc
       
  4043     *** Failers
       
  4044 No match
       
  4045     a-c
       
  4046  0: a-c
       
  4047     a]c
       
  4048 No match
       
  4049 
       
  4050 /\ba\b/
       
  4051     a-
       
  4052  0: a
       
  4053     -a
       
  4054  0: a
       
  4055     -a-
       
  4056  0: a
       
  4057 
       
  4058 /\by\b/
       
  4059     *** Failers
       
  4060 No match
       
  4061     xy
       
  4062 No match
       
  4063     yz
       
  4064 No match
       
  4065     xyz
       
  4066 No match
       
  4067 
       
  4068 /\Ba\B/
       
  4069     *** Failers
       
  4070  0: a
       
  4071     a-
       
  4072 No match
       
  4073     -a
       
  4074 No match
       
  4075     -a-
       
  4076 No match
       
  4077 
       
  4078 /\By\b/
       
  4079     xy
       
  4080  0: y
       
  4081 
       
  4082 /\by\B/
       
  4083     yz
       
  4084  0: y
       
  4085 
       
  4086 /\By\B/
       
  4087     xyz
       
  4088  0: y
       
  4089 
       
  4090 /\w/
       
  4091     a
       
  4092  0: a
       
  4093 
       
  4094 /\W/
       
  4095     -
       
  4096  0: -
       
  4097     *** Failers
       
  4098  0: *
       
  4099     -
       
  4100  0: -
       
  4101     a
       
  4102 No match
       
  4103 
       
  4104 /a\sb/
       
  4105     a b
       
  4106  0: a b
       
  4107 
       
  4108 /a\Sb/
       
  4109     a-b
       
  4110  0: a-b
       
  4111     *** Failers
       
  4112 No match
       
  4113     a-b
       
  4114  0: a-b
       
  4115     a b
       
  4116 No match
       
  4117 
       
  4118 /\d/
       
  4119     1
       
  4120  0: 1
       
  4121 
       
  4122 /\D/
       
  4123     -
       
  4124  0: -
       
  4125     *** Failers
       
  4126  0: *
       
  4127     -
       
  4128  0: -
       
  4129     1
       
  4130 No match
       
  4131 
       
  4132 /[\w]/
       
  4133     a
       
  4134  0: a
       
  4135 
       
  4136 /[\W]/
       
  4137     -
       
  4138  0: -
       
  4139     *** Failers
       
  4140  0: *
       
  4141     -
       
  4142  0: -
       
  4143     a
       
  4144 No match
       
  4145 
       
  4146 /a[\s]b/
       
  4147     a b
       
  4148  0: a b
       
  4149 
       
  4150 /a[\S]b/
       
  4151     a-b
       
  4152  0: a-b
       
  4153     *** Failers
       
  4154 No match
       
  4155     a-b
       
  4156  0: a-b
       
  4157     a b
       
  4158 No match
       
  4159 
       
  4160 /[\d]/
       
  4161     1
       
  4162  0: 1
       
  4163 
       
  4164 /[\D]/
       
  4165     -
       
  4166  0: -
       
  4167     *** Failers
       
  4168  0: *
       
  4169     -
       
  4170  0: -
       
  4171     1
       
  4172 No match
       
  4173 
       
  4174 /ab|cd/
       
  4175     abc
       
  4176  0: ab
       
  4177     abcd
       
  4178  0: ab
       
  4179 
       
  4180 /()ef/
       
  4181     def
       
  4182  0: ef
       
  4183  1: 
       
  4184 
       
  4185 /$b/
       
  4186 
       
  4187 /a\(b/
       
  4188     a(b
       
  4189  0: a(b
       
  4190 
       
  4191 /a\(*b/
       
  4192     ab
       
  4193  0: ab
       
  4194     a((b
       
  4195  0: a((b
       
  4196 
       
  4197 /a\\b/
       
  4198     a\b
       
  4199 No match
       
  4200 
       
  4201 /((a))/
       
  4202     abc
       
  4203  0: a
       
  4204  1: a
       
  4205  2: a
       
  4206 
       
  4207 /(a)b(c)/
       
  4208     abc
       
  4209  0: abc
       
  4210  1: a
       
  4211  2: c
       
  4212 
       
  4213 /a+b+c/
       
  4214     aabbabc
       
  4215  0: abc
       
  4216 
       
  4217 /a{1,}b{1,}c/
       
  4218     aabbabc
       
  4219  0: abc
       
  4220 
       
  4221 /a.+?c/
       
  4222     abcabc
       
  4223  0: abc
       
  4224 
       
  4225 /(a+|b)*/
       
  4226     ab
       
  4227  0: ab
       
  4228  1: b
       
  4229 
       
  4230 /(a+|b){0,}/
       
  4231     ab
       
  4232  0: ab
       
  4233  1: b
       
  4234 
       
  4235 /(a+|b)+/
       
  4236     ab
       
  4237  0: ab
       
  4238  1: b
       
  4239 
       
  4240 /(a+|b){1,}/
       
  4241     ab
       
  4242  0: ab
       
  4243  1: b
       
  4244 
       
  4245 /(a+|b)?/
       
  4246     ab
       
  4247  0: a
       
  4248  1: a
       
  4249 
       
  4250 /(a+|b){0,1}/
       
  4251     ab
       
  4252  0: a
       
  4253  1: a
       
  4254 
       
  4255 /[^ab]*/
       
  4256     cde
       
  4257  0: cde
       
  4258 
       
  4259 /abc/
       
  4260     *** Failers
       
  4261 No match
       
  4262     b
       
  4263 No match
       
  4264     
       
  4265 
       
  4266 /a*/
       
  4267     
       
  4268 
       
  4269 /([abc])*d/
       
  4270     abbbcd
       
  4271  0: abbbcd
       
  4272  1: c
       
  4273 
       
  4274 /([abc])*bcd/
       
  4275     abcd
       
  4276  0: abcd
       
  4277  1: a
       
  4278 
       
  4279 /a|b|c|d|e/
       
  4280     e
       
  4281  0: e
       
  4282 
       
  4283 /(a|b|c|d|e)f/
       
  4284     ef
       
  4285  0: ef
       
  4286  1: e
       
  4287 
       
  4288 /abcd*efg/
       
  4289     abcdefg
       
  4290  0: abcdefg
       
  4291 
       
  4292 /ab*/
       
  4293     xabyabbbz
       
  4294  0: ab
       
  4295     xayabbbz
       
  4296  0: a
       
  4297 
       
  4298 /(ab|cd)e/
       
  4299     abcde
       
  4300  0: cde
       
  4301  1: cd
       
  4302 
       
  4303 /[abhgefdc]ij/
       
  4304     hij
       
  4305  0: hij
       
  4306 
       
  4307 /^(ab|cd)e/
       
  4308 
       
  4309 /(abc|)ef/
       
  4310     abcdef
       
  4311  0: ef
       
  4312  1: 
       
  4313 
       
  4314 /(a|b)c*d/
       
  4315     abcd
       
  4316  0: bcd
       
  4317  1: b
       
  4318 
       
  4319 /(ab|ab*)bc/
       
  4320     abc
       
  4321  0: abc
       
  4322  1: a
       
  4323 
       
  4324 /a([bc]*)c*/
       
  4325     abc
       
  4326  0: abc
       
  4327  1: bc
       
  4328 
       
  4329 /a([bc]*)(c*d)/
       
  4330     abcd
       
  4331  0: abcd
       
  4332  1: bc
       
  4333  2: d
       
  4334 
       
  4335 /a([bc]+)(c*d)/
       
  4336     abcd
       
  4337  0: abcd
       
  4338  1: bc
       
  4339  2: d
       
  4340 
       
  4341 /a([bc]*)(c+d)/
       
  4342     abcd
       
  4343  0: abcd
       
  4344  1: b
       
  4345  2: cd
       
  4346 
       
  4347 /a[bcd]*dcdcde/
       
  4348     adcdcde
       
  4349  0: adcdcde
       
  4350 
       
  4351 /a[bcd]+dcdcde/
       
  4352     *** Failers
       
  4353 No match
       
  4354     abcde
       
  4355 No match
       
  4356     adcdcde
       
  4357 No match
       
  4358 
       
  4359 /(ab|a)b*c/
       
  4360     abc
       
  4361  0: abc
       
  4362  1: ab
       
  4363 
       
  4364 /((a)(b)c)(d)/
       
  4365     abcd
       
  4366  0: abcd
       
  4367  1: abc
       
  4368  2: a
       
  4369  3: b
       
  4370  4: d
       
  4371 
       
  4372 /[a-zA-Z_][a-zA-Z0-9_]*/
       
  4373     alpha
       
  4374  0: alpha
       
  4375 
       
  4376 /^a(bc+|b[eh])g|.h$/
       
  4377     abh
       
  4378  0: bh
       
  4379 
       
  4380 /(bc+d$|ef*g.|h?i(j|k))/
       
  4381     effgz
       
  4382  0: effgz
       
  4383  1: effgz
       
  4384     ij
       
  4385  0: ij
       
  4386  1: ij
       
  4387  2: j
       
  4388     reffgz
       
  4389  0: effgz
       
  4390  1: effgz
       
  4391     *** Failers
       
  4392 No match
       
  4393     effg
       
  4394 No match
       
  4395     bcdd
       
  4396 No match
       
  4397 
       
  4398 /((((((((((a))))))))))/
       
  4399     a
       
  4400  0: a
       
  4401  1: a
       
  4402  2: a
       
  4403  3: a
       
  4404  4: a
       
  4405  5: a
       
  4406  6: a
       
  4407  7: a
       
  4408  8: a
       
  4409  9: a
       
  4410 10: a
       
  4411 
       
  4412 /((((((((((a))))))))))\10/
       
  4413     aa
       
  4414  0: aa
       
  4415  1: a
       
  4416  2: a
       
  4417  3: a
       
  4418  4: a
       
  4419  5: a
       
  4420  6: a
       
  4421  7: a
       
  4422  8: a
       
  4423  9: a
       
  4424 10: a
       
  4425 
       
  4426 /(((((((((a)))))))))/
       
  4427     a
       
  4428  0: a
       
  4429  1: a
       
  4430  2: a
       
  4431  3: a
       
  4432  4: a
       
  4433  5: a
       
  4434  6: a
       
  4435  7: a
       
  4436  8: a
       
  4437  9: a
       
  4438 
       
  4439 /multiple words of text/
       
  4440     *** Failers
       
  4441 No match
       
  4442     aa
       
  4443 No match
       
  4444     uh-uh
       
  4445 No match
       
  4446 
       
  4447 /multiple words/
       
  4448     multiple words, yeah
       
  4449  0: multiple words
       
  4450 
       
  4451 /(.*)c(.*)/
       
  4452     abcde
       
  4453  0: abcde
       
  4454  1: ab
       
  4455  2: de
       
  4456 
       
  4457 /\((.*), (.*)\)/
       
  4458     (a, b)
       
  4459  0: (a, b)
       
  4460  1: a
       
  4461  2: b
       
  4462 
       
  4463 /[k]/
       
  4464 
       
  4465 /abcd/
       
  4466     abcd
       
  4467  0: abcd
       
  4468 
       
  4469 /a(bc)d/
       
  4470     abcd
       
  4471  0: abcd
       
  4472  1: bc
       
  4473 
       
  4474 /a[-]?c/
       
  4475     ac
       
  4476  0: ac
       
  4477 
       
  4478 /(abc)\1/
       
  4479     abcabc
       
  4480  0: abcabc
       
  4481  1: abc
       
  4482 
       
  4483 /([a-c]*)\1/
       
  4484     abcabc
       
  4485  0: abcabc
       
  4486  1: abc
       
  4487 
       
  4488 /(a)|\1/
       
  4489     a
       
  4490  0: a
       
  4491  1: a
       
  4492     *** Failers
       
  4493  0: a
       
  4494  1: a
       
  4495     ab
       
  4496  0: a
       
  4497  1: a
       
  4498     x
       
  4499 No match
       
  4500 
       
  4501 /(([a-c])b*?\2)*/
       
  4502     ababbbcbc
       
  4503  0: ababb
       
  4504  1: bb
       
  4505  2: b
       
  4506 
       
  4507 /(([a-c])b*?\2){3}/
       
  4508     ababbbcbc
       
  4509  0: ababbbcbc
       
  4510  1: cbc
       
  4511  2: c
       
  4512 
       
  4513 /((\3|b)\2(a)x)+/
       
  4514     aaaxabaxbaaxbbax
       
  4515  0: bbax
       
  4516  1: bbax
       
  4517  2: b
       
  4518  3: a
       
  4519 
       
  4520 /((\3|b)\2(a)){2,}/
       
  4521     bbaababbabaaaaabbaaaabba
       
  4522  0: bbaaaabba
       
  4523  1: bba
       
  4524  2: b
       
  4525  3: a
       
  4526 
       
  4527 /abc/i
       
  4528     ABC
       
  4529  0: ABC
       
  4530     XABCY
       
  4531  0: ABC
       
  4532     ABABC
       
  4533  0: ABC
       
  4534     *** Failers
       
  4535 No match
       
  4536     aaxabxbaxbbx
       
  4537 No match
       
  4538     XBC
       
  4539 No match
       
  4540     AXC
       
  4541 No match
       
  4542     ABX
       
  4543 No match
       
  4544 
       
  4545 /ab*c/i
       
  4546     ABC
       
  4547  0: ABC
       
  4548 
       
  4549 /ab*bc/i
       
  4550     ABC
       
  4551  0: ABC
       
  4552     ABBC
       
  4553  0: ABBC
       
  4554 
       
  4555 /ab*?bc/i
       
  4556     ABBBBC
       
  4557  0: ABBBBC
       
  4558 
       
  4559 /ab{0,}?bc/i
       
  4560     ABBBBC
       
  4561  0: ABBBBC
       
  4562 
       
  4563 /ab+?bc/i
       
  4564     ABBC
       
  4565  0: ABBC
       
  4566 
       
  4567 /ab+bc/i
       
  4568     *** Failers
       
  4569 No match
       
  4570     ABC
       
  4571 No match
       
  4572     ABQ
       
  4573 No match
       
  4574 
       
  4575 /ab{1,}bc/i
       
  4576 
       
  4577 /ab+bc/i
       
  4578     ABBBBC
       
  4579  0: ABBBBC
       
  4580 
       
  4581 /ab{1,}?bc/i
       
  4582     ABBBBC
       
  4583  0: ABBBBC
       
  4584 
       
  4585 /ab{1,3}?bc/i
       
  4586     ABBBBC
       
  4587  0: ABBBBC
       
  4588 
       
  4589 /ab{3,4}?bc/i
       
  4590     ABBBBC
       
  4591  0: ABBBBC
       
  4592 
       
  4593 /ab{4,5}?bc/i
       
  4594     *** Failers
       
  4595 No match
       
  4596     ABQ
       
  4597 No match
       
  4598     ABBBBC
       
  4599 No match
       
  4600 
       
  4601 /ab??bc/i
       
  4602     ABBC
       
  4603  0: ABBC
       
  4604     ABC
       
  4605  0: ABC
       
  4606 
       
  4607 /ab{0,1}?bc/i
       
  4608     ABC
       
  4609  0: ABC
       
  4610 
       
  4611 /ab??bc/i
       
  4612 
       
  4613 /ab??c/i
       
  4614     ABC
       
  4615  0: ABC
       
  4616 
       
  4617 /ab{0,1}?c/i
       
  4618     ABC
       
  4619  0: ABC
       
  4620 
       
  4621 /^abc$/i
       
  4622     ABC
       
  4623  0: ABC
       
  4624     *** Failers
       
  4625 No match
       
  4626     ABBBBC
       
  4627 No match
       
  4628     ABCC
       
  4629 No match
       
  4630 
       
  4631 /^abc/i
       
  4632     ABCC
       
  4633  0: ABC
       
  4634 
       
  4635 /^abc$/i
       
  4636 
       
  4637 /abc$/i
       
  4638     AABC
       
  4639  0: ABC
       
  4640 
       
  4641 /^/i
       
  4642     ABC
       
  4643  0: 
       
  4644 
       
  4645 /$/i
       
  4646     ABC
       
  4647  0: 
       
  4648 
       
  4649 /a.c/i
       
  4650     ABC
       
  4651  0: ABC
       
  4652     AXC
       
  4653  0: AXC
       
  4654 
       
  4655 /a.*?c/i
       
  4656     AXYZC
       
  4657  0: AXYZC
       
  4658 
       
  4659 /a.*c/i
       
  4660     *** Failers
       
  4661 No match
       
  4662     AABC
       
  4663  0: AABC
       
  4664     AXYZD
       
  4665 No match
       
  4666 
       
  4667 /a[bc]d/i
       
  4668     ABD
       
  4669  0: ABD
       
  4670 
       
  4671 /a[b-d]e/i
       
  4672     ACE
       
  4673  0: ACE
       
  4674     *** Failers
       
  4675 No match
       
  4676     ABC
       
  4677 No match
       
  4678     ABD
       
  4679 No match
       
  4680 
       
  4681 /a[b-d]/i
       
  4682     AAC
       
  4683  0: AC
       
  4684 
       
  4685 /a[-b]/i
       
  4686     A-
       
  4687  0: A-
       
  4688 
       
  4689 /a[b-]/i
       
  4690     A-
       
  4691  0: A-
       
  4692 
       
  4693 /a]/i
       
  4694     A]
       
  4695  0: A]
       
  4696 
       
  4697 /a[]]b/i
       
  4698     A]B
       
  4699  0: A]B
       
  4700 
       
  4701 /a[^bc]d/i
       
  4702     AED
       
  4703  0: AED
       
  4704 
       
  4705 /a[^-b]c/i
       
  4706     ADC
       
  4707  0: ADC
       
  4708     *** Failers
       
  4709 No match
       
  4710     ABD
       
  4711 No match
       
  4712     A-C
       
  4713 No match
       
  4714 
       
  4715 /a[^]b]c/i
       
  4716     ADC
       
  4717  0: ADC
       
  4718 
       
  4719 /ab|cd/i
       
  4720     ABC
       
  4721  0: AB
       
  4722     ABCD
       
  4723  0: AB
       
  4724 
       
  4725 /()ef/i
       
  4726     DEF
       
  4727  0: EF
       
  4728  1: 
       
  4729 
       
  4730 /$b/i
       
  4731     *** Failers
       
  4732 No match
       
  4733     A]C
       
  4734 No match
       
  4735     B
       
  4736 No match
       
  4737 
       
  4738 /a\(b/i
       
  4739     A(B
       
  4740  0: A(B
       
  4741 
       
  4742 /a\(*b/i
       
  4743     AB
       
  4744  0: AB
       
  4745     A((B
       
  4746  0: A((B
       
  4747 
       
  4748 /a\\b/i
       
  4749     A\B
       
  4750 No match
       
  4751 
       
  4752 /((a))/i
       
  4753     ABC
       
  4754  0: A
       
  4755  1: A
       
  4756  2: A
       
  4757 
       
  4758 /(a)b(c)/i
       
  4759     ABC
       
  4760  0: ABC
       
  4761  1: A
       
  4762  2: C
       
  4763 
       
  4764 /a+b+c/i
       
  4765     AABBABC
       
  4766  0: ABC
       
  4767 
       
  4768 /a{1,}b{1,}c/i
       
  4769     AABBABC
       
  4770  0: ABC
       
  4771 
       
  4772 /a.+?c/i
       
  4773     ABCABC
       
  4774  0: ABC
       
  4775 
       
  4776 /a.*?c/i
       
  4777     ABCABC
       
  4778  0: ABC
       
  4779 
       
  4780 /a.{0,5}?c/i
       
  4781     ABCABC
       
  4782  0: ABC
       
  4783 
       
  4784 /(a+|b)*/i
       
  4785     AB
       
  4786  0: AB
       
  4787  1: B
       
  4788 
       
  4789 /(a+|b){0,}/i
       
  4790     AB
       
  4791  0: AB
       
  4792  1: B
       
  4793 
       
  4794 /(a+|b)+/i
       
  4795     AB
       
  4796  0: AB
       
  4797  1: B
       
  4798 
       
  4799 /(a+|b){1,}/i
       
  4800     AB
       
  4801  0: AB
       
  4802  1: B
       
  4803 
       
  4804 /(a+|b)?/i
       
  4805     AB
       
  4806  0: A
       
  4807  1: A
       
  4808 
       
  4809 /(a+|b){0,1}/i
       
  4810     AB
       
  4811  0: A
       
  4812  1: A
       
  4813 
       
  4814 /(a+|b){0,1}?/i
       
  4815     AB
       
  4816  0: 
       
  4817 
       
  4818 /[^ab]*/i
       
  4819     CDE
       
  4820  0: CDE
       
  4821 
       
  4822 /abc/i
       
  4823 
       
  4824 /a*/i
       
  4825     
       
  4826 
       
  4827 /([abc])*d/i
       
  4828     ABBBCD
       
  4829  0: ABBBCD
       
  4830  1: C
       
  4831 
       
  4832 /([abc])*bcd/i
       
  4833     ABCD
       
  4834  0: ABCD
       
  4835  1: A
       
  4836 
       
  4837 /a|b|c|d|e/i
       
  4838     E
       
  4839  0: E
       
  4840 
       
  4841 /(a|b|c|d|e)f/i
       
  4842     EF
       
  4843  0: EF
       
  4844  1: E
       
  4845 
       
  4846 /abcd*efg/i
       
  4847     ABCDEFG
       
  4848  0: ABCDEFG
       
  4849 
       
  4850 /ab*/i
       
  4851     XABYABBBZ
       
  4852  0: AB
       
  4853     XAYABBBZ
       
  4854  0: A
       
  4855 
       
  4856 /(ab|cd)e/i
       
  4857     ABCDE
       
  4858  0: CDE
       
  4859  1: CD
       
  4860 
       
  4861 /[abhgefdc]ij/i
       
  4862     HIJ
       
  4863  0: HIJ
       
  4864 
       
  4865 /^(ab|cd)e/i
       
  4866     ABCDE
       
  4867 No match
       
  4868 
       
  4869 /(abc|)ef/i
       
  4870     ABCDEF
       
  4871  0: EF
       
  4872  1: 
       
  4873 
       
  4874 /(a|b)c*d/i
       
  4875     ABCD
       
  4876  0: BCD
       
  4877  1: B
       
  4878 
       
  4879 /(ab|ab*)bc/i
       
  4880     ABC
       
  4881  0: ABC
       
  4882  1: A
       
  4883 
       
  4884 /a([bc]*)c*/i
       
  4885     ABC
       
  4886  0: ABC
       
  4887  1: BC
       
  4888 
       
  4889 /a([bc]*)(c*d)/i
       
  4890     ABCD
       
  4891  0: ABCD
       
  4892  1: BC
       
  4893  2: D
       
  4894 
       
  4895 /a([bc]+)(c*d)/i
       
  4896     ABCD
       
  4897  0: ABCD
       
  4898  1: BC
       
  4899  2: D
       
  4900 
       
  4901 /a([bc]*)(c+d)/i
       
  4902     ABCD
       
  4903  0: ABCD
       
  4904  1: B
       
  4905  2: CD
       
  4906 
       
  4907 /a[bcd]*dcdcde/i
       
  4908     ADCDCDE
       
  4909  0: ADCDCDE
       
  4910 
       
  4911 /a[bcd]+dcdcde/i
       
  4912 
       
  4913 /(ab|a)b*c/i
       
  4914     ABC
       
  4915  0: ABC
       
  4916  1: AB
       
  4917 
       
  4918 /((a)(b)c)(d)/i
       
  4919     ABCD
       
  4920  0: ABCD
       
  4921  1: ABC
       
  4922  2: A
       
  4923  3: B
       
  4924  4: D
       
  4925 
       
  4926 /[a-zA-Z_][a-zA-Z0-9_]*/i
       
  4927     ALPHA
       
  4928  0: ALPHA
       
  4929 
       
  4930 /^a(bc+|b[eh])g|.h$/i
       
  4931     ABH
       
  4932  0: BH
       
  4933 
       
  4934 /(bc+d$|ef*g.|h?i(j|k))/i
       
  4935     EFFGZ
       
  4936  0: EFFGZ
       
  4937  1: EFFGZ
       
  4938     IJ
       
  4939  0: IJ
       
  4940  1: IJ
       
  4941  2: J
       
  4942     REFFGZ
       
  4943  0: EFFGZ
       
  4944  1: EFFGZ
       
  4945     *** Failers
       
  4946 No match
       
  4947     ADCDCDE
       
  4948 No match
       
  4949     EFFG
       
  4950 No match
       
  4951     BCDD
       
  4952 No match
       
  4953 
       
  4954 /((((((((((a))))))))))/i
       
  4955     A
       
  4956  0: A
       
  4957  1: A
       
  4958  2: A
       
  4959  3: A
       
  4960  4: A
       
  4961  5: A
       
  4962  6: A
       
  4963  7: A
       
  4964  8: A
       
  4965  9: A
       
  4966 10: A
       
  4967 
       
  4968 /((((((((((a))))))))))\10/i
       
  4969     AA
       
  4970  0: AA
       
  4971  1: A
       
  4972  2: A
       
  4973  3: A
       
  4974  4: A
       
  4975  5: A
       
  4976  6: A
       
  4977  7: A
       
  4978  8: A
       
  4979  9: A
       
  4980 10: A
       
  4981 
       
  4982 /(((((((((a)))))))))/i
       
  4983     A
       
  4984  0: A
       
  4985  1: A
       
  4986  2: A
       
  4987  3: A
       
  4988  4: A
       
  4989  5: A
       
  4990  6: A
       
  4991  7: A
       
  4992  8: A
       
  4993  9: A
       
  4994 
       
  4995 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
       
  4996     A
       
  4997  0: A
       
  4998  1: A
       
  4999 
       
  5000 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
       
  5001     C
       
  5002  0: C
       
  5003  1: C
       
  5004 
       
  5005 /multiple words of text/i
       
  5006     *** Failers
       
  5007 No match
       
  5008     AA
       
  5009 No match
       
  5010     UH-UH
       
  5011 No match
       
  5012 
       
  5013 /multiple words/i
       
  5014     MULTIPLE WORDS, YEAH
       
  5015  0: MULTIPLE WORDS
       
  5016 
       
  5017 /(.*)c(.*)/i
       
  5018     ABCDE
       
  5019  0: ABCDE
       
  5020  1: AB
       
  5021  2: DE
       
  5022 
       
  5023 /\((.*), (.*)\)/i
       
  5024     (A, B)
       
  5025  0: (A, B)
       
  5026  1: A
       
  5027  2: B
       
  5028 
       
  5029 /[k]/i
       
  5030 
       
  5031 /abcd/i
       
  5032     ABCD
       
  5033  0: ABCD
       
  5034 
       
  5035 /a(bc)d/i
       
  5036     ABCD
       
  5037  0: ABCD
       
  5038  1: BC
       
  5039 
       
  5040 /a[-]?c/i
       
  5041     AC
       
  5042  0: AC
       
  5043 
       
  5044 /(abc)\1/i
       
  5045     ABCABC
       
  5046  0: ABCABC
       
  5047  1: ABC
       
  5048 
       
  5049 /([a-c]*)\1/i
       
  5050     ABCABC
       
  5051  0: ABCABC
       
  5052  1: ABC
       
  5053 
       
  5054 /a(?!b)./
       
  5055     abad
       
  5056  0: ad
       
  5057 
       
  5058 /a(?=d)./
       
  5059     abad
       
  5060  0: ad
       
  5061 
       
  5062 /a(?=c|d)./
       
  5063     abad
       
  5064  0: ad
       
  5065 
       
  5066 /a(?:b|c|d)(.)/
       
  5067     ace
       
  5068  0: ace
       
  5069  1: e
       
  5070 
       
  5071 /a(?:b|c|d)*(.)/
       
  5072     ace
       
  5073  0: ace
       
  5074  1: e
       
  5075 
       
  5076 /a(?:b|c|d)+?(.)/
       
  5077     ace
       
  5078  0: ace
       
  5079  1: e
       
  5080     acdbcdbe
       
  5081  0: acd
       
  5082  1: d
       
  5083 
       
  5084 /a(?:b|c|d)+(.)/
       
  5085     acdbcdbe
       
  5086  0: acdbcdbe
       
  5087  1: e
       
  5088 
       
  5089 /a(?:b|c|d){2}(.)/
       
  5090     acdbcdbe
       
  5091  0: acdb
       
  5092  1: b
       
  5093 
       
  5094 /a(?:b|c|d){4,5}(.)/
       
  5095     acdbcdbe
       
  5096  0: acdbcdb
       
  5097  1: b
       
  5098 
       
  5099 /a(?:b|c|d){4,5}?(.)/
       
  5100     acdbcdbe
       
  5101  0: acdbcd
       
  5102  1: d
       
  5103 
       
  5104 /((foo)|(bar))*/
       
  5105     foobar
       
  5106  0: foobar
       
  5107  1: bar
       
  5108  2: foo
       
  5109  3: bar
       
  5110 
       
  5111 /a(?:b|c|d){6,7}(.)/
       
  5112     acdbcdbe
       
  5113  0: acdbcdbe
       
  5114  1: e
       
  5115 
       
  5116 /a(?:b|c|d){6,7}?(.)/
       
  5117     acdbcdbe
       
  5118  0: acdbcdbe
       
  5119  1: e
       
  5120 
       
  5121 /a(?:b|c|d){5,6}(.)/
       
  5122     acdbcdbe
       
  5123  0: acdbcdbe
       
  5124  1: e
       
  5125 
       
  5126 /a(?:b|c|d){5,6}?(.)/
       
  5127     acdbcdbe
       
  5128  0: acdbcdb
       
  5129  1: b
       
  5130 
       
  5131 /a(?:b|c|d){5,7}(.)/
       
  5132     acdbcdbe
       
  5133  0: acdbcdbe
       
  5134  1: e
       
  5135 
       
  5136 /a(?:b|c|d){5,7}?(.)/
       
  5137     acdbcdbe
       
  5138  0: acdbcdb
       
  5139  1: b
       
  5140 
       
  5141 /a(?:b|(c|e){1,2}?|d)+?(.)/
       
  5142     ace
       
  5143  0: ace
       
  5144  1: c
       
  5145  2: e
       
  5146 
       
  5147 /^(.+)?B/
       
  5148     AB
       
  5149  0: AB
       
  5150  1: A
       
  5151 
       
  5152 /^([^a-z])|(\^)$/
       
  5153     .
       
  5154  0: .
       
  5155  1: .
       
  5156 
       
  5157 /^[<>]&/
       
  5158     <&OUT
       
  5159  0: <&
       
  5160 
       
  5161 /^(a\1?){4}$/
       
  5162     aaaaaaaaaa
       
  5163  0: aaaaaaaaaa
       
  5164  1: aaaa
       
  5165     *** Failers
       
  5166 No match
       
  5167     AB
       
  5168 No match
       
  5169     aaaaaaaaa
       
  5170 No match
       
  5171     aaaaaaaaaaa
       
  5172 No match
       
  5173 
       
  5174 /^(a(?(1)\1)){4}$/
       
  5175     aaaaaaaaaa
       
  5176  0: aaaaaaaaaa
       
  5177  1: aaaa
       
  5178     *** Failers
       
  5179 No match
       
  5180     aaaaaaaaa
       
  5181 No match
       
  5182     aaaaaaaaaaa
       
  5183 No match
       
  5184 
       
  5185 /(?:(f)(o)(o)|(b)(a)(r))*/
       
  5186     foobar
       
  5187  0: foobar
       
  5188  1: f
       
  5189  2: o
       
  5190  3: o
       
  5191  4: b
       
  5192  5: a
       
  5193  6: r
       
  5194 
       
  5195 /(?<=a)b/
       
  5196     ab
       
  5197  0: b
       
  5198     *** Failers
       
  5199 No match
       
  5200     cb
       
  5201 No match
       
  5202     b
       
  5203 No match
       
  5204 
       
  5205 /(?<!c)b/
       
  5206     ab
       
  5207  0: b
       
  5208     b
       
  5209  0: b
       
  5210     b
       
  5211  0: b
       
  5212 
       
  5213 /(?:..)*a/
       
  5214     aba
       
  5215  0: aba
       
  5216 
       
  5217 /(?:..)*?a/
       
  5218     aba
       
  5219  0: a
       
  5220 
       
  5221 /^(?:b|a(?=(.)))*\1/
       
  5222     abc
       
  5223  0: ab
       
  5224  1: b
       
  5225 
       
  5226 /^(){3,5}/
       
  5227     abc
       
  5228  0: 
       
  5229  1: 
       
  5230 
       
  5231 /^(a+)*ax/
       
  5232     aax
       
  5233  0: aax
       
  5234  1: a
       
  5235 
       
  5236 /^((a|b)+)*ax/
       
  5237     aax
       
  5238  0: aax
       
  5239  1: a
       
  5240  2: a
       
  5241 
       
  5242 /^((a|bc)+)*ax/
       
  5243     aax
       
  5244  0: aax
       
  5245  1: a
       
  5246  2: a
       
  5247 
       
  5248 /(a|x)*ab/
       
  5249     cab
       
  5250  0: ab
       
  5251 
       
  5252 /(a)*ab/
       
  5253     cab
       
  5254  0: ab
       
  5255 
       
  5256 /(?:(?i)a)b/
       
  5257     ab
       
  5258  0: ab
       
  5259 
       
  5260 /((?i)a)b/
       
  5261     ab
       
  5262  0: ab
       
  5263  1: a
       
  5264 
       
  5265 /(?:(?i)a)b/
       
  5266     Ab
       
  5267  0: Ab
       
  5268 
       
  5269 /((?i)a)b/
       
  5270     Ab
       
  5271  0: Ab
       
  5272  1: A
       
  5273 
       
  5274 /(?:(?i)a)b/
       
  5275     *** Failers
       
  5276 No match
       
  5277     cb
       
  5278 No match
       
  5279     aB
       
  5280 No match
       
  5281 
       
  5282 /((?i)a)b/
       
  5283 
       
  5284 /(?i:a)b/
       
  5285     ab
       
  5286  0: ab
       
  5287 
       
  5288 /((?i:a))b/
       
  5289     ab
       
  5290  0: ab
       
  5291  1: a
       
  5292 
       
  5293 /(?i:a)b/
       
  5294     Ab
       
  5295  0: Ab
       
  5296 
       
  5297 /((?i:a))b/
       
  5298     Ab
       
  5299  0: Ab
       
  5300  1: A
       
  5301 
       
  5302 /(?i:a)b/
       
  5303     *** Failers
       
  5304 No match
       
  5305     aB
       
  5306 No match
       
  5307     aB
       
  5308 No match
       
  5309 
       
  5310 /((?i:a))b/
       
  5311 
       
  5312 /(?:(?-i)a)b/i
       
  5313     ab
       
  5314  0: ab
       
  5315 
       
  5316 /((?-i)a)b/i
       
  5317     ab
       
  5318  0: ab
       
  5319  1: a
       
  5320 
       
  5321 /(?:(?-i)a)b/i
       
  5322     aB
       
  5323  0: aB
       
  5324 
       
  5325 /((?-i)a)b/i
       
  5326     aB
       
  5327  0: aB
       
  5328  1: a
       
  5329 
       
  5330 /(?:(?-i)a)b/i
       
  5331     *** Failers
       
  5332 No match
       
  5333     aB
       
  5334  0: aB
       
  5335     Ab
       
  5336 No match
       
  5337 
       
  5338 /((?-i)a)b/i
       
  5339 
       
  5340 /(?:(?-i)a)b/i
       
  5341     aB
       
  5342  0: aB
       
  5343 
       
  5344 /((?-i)a)b/i
       
  5345     aB
       
  5346  0: aB
       
  5347  1: a
       
  5348 
       
  5349 /(?:(?-i)a)b/i
       
  5350     *** Failers
       
  5351 No match
       
  5352     Ab
       
  5353 No match
       
  5354     AB
       
  5355 No match
       
  5356 
       
  5357 /((?-i)a)b/i
       
  5358 
       
  5359 /(?-i:a)b/i
       
  5360     ab
       
  5361  0: ab
       
  5362 
       
  5363 /((?-i:a))b/i
       
  5364     ab
       
  5365  0: ab
       
  5366  1: a
       
  5367 
       
  5368 /(?-i:a)b/i
       
  5369     aB
       
  5370  0: aB
       
  5371 
       
  5372 /((?-i:a))b/i
       
  5373     aB
       
  5374  0: aB
       
  5375  1: a
       
  5376 
       
  5377 /(?-i:a)b/i
       
  5378     *** Failers
       
  5379 No match
       
  5380     AB
       
  5381 No match
       
  5382     Ab
       
  5383 No match
       
  5384 
       
  5385 /((?-i:a))b/i
       
  5386 
       
  5387 /(?-i:a)b/i
       
  5388     aB
       
  5389  0: aB
       
  5390 
       
  5391 /((?-i:a))b/i
       
  5392     aB
       
  5393  0: aB
       
  5394  1: a
       
  5395 
       
  5396 /(?-i:a)b/i
       
  5397     *** Failers
       
  5398 No match
       
  5399     Ab
       
  5400 No match
       
  5401     AB
       
  5402 No match
       
  5403 
       
  5404 /((?-i:a))b/i
       
  5405 
       
  5406 /((?-i:a.))b/i
       
  5407     *** Failers
       
  5408 No match
       
  5409     AB
       
  5410 No match
       
  5411     a\nB
       
  5412 No match
       
  5413 
       
  5414 /((?s-i:a.))b/i
       
  5415     a\nB
       
  5416  0: a\x0aB
       
  5417  1: a\x0a
       
  5418 
       
  5419 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
       
  5420     cabbbb
       
  5421  0: cabbbb
       
  5422 
       
  5423 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
       
  5424     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
       
  5425  0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
       
  5426 
       
  5427 /(ab)\d\1/i
       
  5428     Ab4ab
       
  5429  0: Ab4ab
       
  5430  1: Ab
       
  5431     ab4Ab
       
  5432  0: ab4Ab
       
  5433  1: ab
       
  5434 
       
  5435 /foo\w*\d{4}baz/
       
  5436     foobar1234baz
       
  5437  0: foobar1234baz
       
  5438 
       
  5439 /x(~~)*(?:(?:F)?)?/
       
  5440     x~~
       
  5441  0: x~~
       
  5442  1: ~~
       
  5443 
       
  5444 /^a(?#xxx){3}c/
       
  5445     aaac
       
  5446  0: aaac
       
  5447 
       
  5448 /^a (?#xxx) (?#yyy) {3}c/x
       
  5449     aaac
       
  5450  0: aaac
       
  5451 
       
  5452 /(?<![cd])b/
       
  5453     *** Failers
       
  5454 No match
       
  5455     B\nB
       
  5456 No match
       
  5457     dbcb
       
  5458 No match
       
  5459 
       
  5460 /(?<![cd])[ab]/
       
  5461     dbaacb
       
  5462  0: a
       
  5463 
       
  5464 /(?<!(c|d))b/
       
  5465 
       
  5466 /(?<!(c|d))[ab]/
       
  5467     dbaacb
       
  5468  0: a
       
  5469 
       
  5470 /(?<!cd)[ab]/
       
  5471     cdaccb
       
  5472  0: b
       
  5473 
       
  5474 /^(?:a?b?)*$/
       
  5475     \
       
  5476  0: 
       
  5477     a
       
  5478  0: a
       
  5479     ab
       
  5480  0: ab
       
  5481     aaa   
       
  5482  0: aaa
       
  5483     *** Failers
       
  5484 No match
       
  5485     dbcb
       
  5486 No match
       
  5487     a--
       
  5488 No match
       
  5489     aa-- 
       
  5490 No match
       
  5491 
       
  5492 /((?s)^a(.))((?m)^b$)/
       
  5493     a\nb\nc\n
       
  5494  0: a\x0ab
       
  5495  1: a\x0a
       
  5496  2: \x0a
       
  5497  3: b
       
  5498 
       
  5499 /((?m)^b$)/
       
  5500     a\nb\nc\n
       
  5501  0: b
       
  5502  1: b
       
  5503 
       
  5504 /(?m)^b/
       
  5505     a\nb\n
       
  5506  0: b
       
  5507 
       
  5508 /(?m)^(b)/
       
  5509     a\nb\n
       
  5510  0: b
       
  5511  1: b
       
  5512 
       
  5513 /((?m)^b)/
       
  5514     a\nb\n
       
  5515  0: b
       
  5516  1: b
       
  5517 
       
  5518 /\n((?m)^b)/
       
  5519     a\nb\n
       
  5520  0: \x0ab
       
  5521  1: b
       
  5522 
       
  5523 /((?s).)c(?!.)/
       
  5524     a\nb\nc\n
       
  5525  0: \x0ac
       
  5526  1: \x0a
       
  5527     a\nb\nc\n
       
  5528  0: \x0ac
       
  5529  1: \x0a
       
  5530 
       
  5531 /((?s)b.)c(?!.)/
       
  5532     a\nb\nc\n
       
  5533  0: b\x0ac
       
  5534  1: b\x0a
       
  5535     a\nb\nc\n
       
  5536  0: b\x0ac
       
  5537  1: b\x0a
       
  5538 
       
  5539 /^b/
       
  5540 
       
  5541 /()^b/
       
  5542     *** Failers
       
  5543 No match
       
  5544     a\nb\nc\n
       
  5545 No match
       
  5546     a\nb\nc\n
       
  5547 No match
       
  5548 
       
  5549 /((?m)^b)/
       
  5550     a\nb\nc\n
       
  5551  0: b
       
  5552  1: b
       
  5553 
       
  5554 /(x)?(?(1)a|b)/
       
  5555     *** Failers
       
  5556 No match
       
  5557     a
       
  5558 No match
       
  5559     a
       
  5560 No match
       
  5561 
       
  5562 /(x)?(?(1)b|a)/
       
  5563     a
       
  5564  0: a
       
  5565 
       
  5566 /()?(?(1)b|a)/
       
  5567     a
       
  5568  0: a
       
  5569 
       
  5570 /()(?(1)b|a)/
       
  5571 
       
  5572 /()?(?(1)a|b)/
       
  5573     a
       
  5574  0: a
       
  5575  1: 
       
  5576 
       
  5577 /^(\()?blah(?(1)(\)))$/
       
  5578     (blah)
       
  5579  0: (blah)
       
  5580  1: (
       
  5581  2: )
       
  5582     blah
       
  5583  0: blah
       
  5584     *** Failers
       
  5585 No match
       
  5586     a
       
  5587 No match
       
  5588     blah)
       
  5589 No match
       
  5590     (blah
       
  5591 No match
       
  5592 
       
  5593 /^(\(+)?blah(?(1)(\)))$/
       
  5594     (blah)
       
  5595  0: (blah)
       
  5596  1: (
       
  5597  2: )
       
  5598     blah
       
  5599  0: blah
       
  5600     *** Failers
       
  5601 No match
       
  5602     blah)
       
  5603 No match
       
  5604     (blah
       
  5605 No match
       
  5606 
       
  5607 /(?(?!a)a|b)/
       
  5608 
       
  5609 /(?(?!a)b|a)/
       
  5610     a
       
  5611  0: a
       
  5612 
       
  5613 /(?(?=a)b|a)/
       
  5614     *** Failers
       
  5615 No match
       
  5616     a
       
  5617 No match
       
  5618     a
       
  5619 No match
       
  5620 
       
  5621 /(?(?=a)a|b)/
       
  5622     a
       
  5623  0: a
       
  5624 
       
  5625 /(?=(a+?))(\1ab)/
       
  5626     aaab
       
  5627  0: aab
       
  5628  1: a
       
  5629  2: aab
       
  5630 
       
  5631 /^(?=(a+?))\1ab/
       
  5632 
       
  5633 /(\w+:)+/
       
  5634     one:
       
  5635  0: one:
       
  5636  1: one:
       
  5637 
       
  5638 /$(?<=^(a))/
       
  5639     a
       
  5640  0: 
       
  5641  1: a
       
  5642 
       
  5643 /(?=(a+?))(\1ab)/
       
  5644     aaab
       
  5645  0: aab
       
  5646  1: a
       
  5647  2: aab
       
  5648 
       
  5649 /^(?=(a+?))\1ab/
       
  5650     *** Failers
       
  5651 No match
       
  5652     aaab
       
  5653 No match
       
  5654     aaab
       
  5655 No match
       
  5656 
       
  5657 /([\w:]+::)?(\w+)$/
       
  5658     abcd
       
  5659  0: abcd
       
  5660  1: <unset>
       
  5661  2: abcd
       
  5662     xy:z:::abcd
       
  5663  0: xy:z:::abcd
       
  5664  1: xy:z:::
       
  5665  2: abcd
       
  5666 
       
  5667 /^[^bcd]*(c+)/
       
  5668     aexycd
       
  5669  0: aexyc
       
  5670  1: c
       
  5671 
       
  5672 /(a*)b+/
       
  5673     caab
       
  5674  0: aab
       
  5675  1: aa
       
  5676 
       
  5677 /([\w:]+::)?(\w+)$/
       
  5678     abcd
       
  5679  0: abcd
       
  5680  1: <unset>
       
  5681  2: abcd
       
  5682     xy:z:::abcd
       
  5683  0: xy:z:::abcd
       
  5684  1: xy:z:::
       
  5685  2: abcd
       
  5686     *** Failers
       
  5687  0: Failers
       
  5688  1: <unset>
       
  5689  2: Failers
       
  5690     abcd:
       
  5691 No match
       
  5692     abcd:
       
  5693 No match
       
  5694 
       
  5695 /^[^bcd]*(c+)/
       
  5696     aexycd
       
  5697  0: aexyc
       
  5698  1: c
       
  5699 
       
  5700 /(>a+)ab/
       
  5701 
       
  5702 /(?>a+)b/
       
  5703     aaab
       
  5704  0: aaab
       
  5705 
       
  5706 /([[:]+)/
       
  5707     a:[b]:
       
  5708  0: :[
       
  5709  1: :[
       
  5710 
       
  5711 /([[=]+)/
       
  5712     a=[b]=
       
  5713  0: =[
       
  5714  1: =[
       
  5715 
       
  5716 /([[.]+)/
       
  5717     a.[b].
       
  5718  0: .[
       
  5719  1: .[
       
  5720 
       
  5721 /((?>a+)b)/
       
  5722     aaab
       
  5723  0: aaab
       
  5724  1: aaab
       
  5725 
       
  5726 /(?>(a+))b/
       
  5727     aaab
       
  5728  0: aaab
       
  5729  1: aaa
       
  5730 
       
  5731 /((?>[^()]+)|\([^()]*\))+/
       
  5732     ((abc(ade)ufh()()x
       
  5733  0: abc(ade)ufh()()x
       
  5734  1: x
       
  5735 
       
  5736 /a\Z/
       
  5737     *** Failers
       
  5738 No match
       
  5739     aaab
       
  5740 No match
       
  5741     a\nb\n
       
  5742 No match
       
  5743 
       
  5744 /b\Z/
       
  5745     a\nb\n
       
  5746  0: b
       
  5747 
       
  5748 /b\z/
       
  5749 
       
  5750 /b\Z/
       
  5751     a\nb
       
  5752  0: b
       
  5753 
       
  5754 /b\z/
       
  5755     a\nb
       
  5756  0: b
       
  5757     *** Failers
       
  5758 No match
       
  5759     
       
  5760 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
       
  5761     a
       
  5762  0: a
       
  5763  1: 
       
  5764     abc
       
  5765  0: abc
       
  5766  1: 
       
  5767     a-b
       
  5768  0: a-b
       
  5769  1: 
       
  5770     0-9 
       
  5771  0: 0-9
       
  5772  1: 
       
  5773     a.b
       
  5774  0: a.b
       
  5775  1: 
       
  5776     5.6.7  
       
  5777  0: 5.6.7
       
  5778  1: 
       
  5779     the.quick.brown.fox
       
  5780  0: the.quick.brown.fox
       
  5781  1: 
       
  5782     a100.b200.300c  
       
  5783  0: a100.b200.300c
       
  5784  1: 
       
  5785     12-ab.1245 
       
  5786  0: 12-ab.1245
       
  5787  1: 
       
  5788     *** Failers
       
  5789 No match
       
  5790     \
       
  5791 No match
       
  5792     .a
       
  5793 No match
       
  5794     -a
       
  5795 No match
       
  5796     a-
       
  5797 No match
       
  5798     a.  
       
  5799 No match
       
  5800     a_b 
       
  5801 No match
       
  5802     a.-
       
  5803 No match
       
  5804     a..  
       
  5805 No match
       
  5806     ab..bc 
       
  5807 No match
       
  5808     the.quick.brown.fox-
       
  5809 No match
       
  5810     the.quick.brown.fox.
       
  5811 No match
       
  5812     the.quick.brown.fox_
       
  5813 No match
       
  5814     the.quick.brown.fox+       
       
  5815 No match
       
  5816 
       
  5817 /(?>.*)(?<=(abcd|wxyz))/
       
  5818     alphabetabcd
       
  5819  0: alphabetabcd
       
  5820  1: abcd
       
  5821     endingwxyz
       
  5822  0: endingwxyz
       
  5823  1: wxyz
       
  5824     *** Failers
       
  5825 No match
       
  5826     a rather long string that doesn't end with one of them
       
  5827 No match
       
  5828 
       
  5829 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
       
  5830     word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  5831  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  5832     word cat dog elephant mussel cow horse canary baboon snake shark
       
  5833 No match
       
  5834   
       
  5835 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
       
  5836     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
       
  5837 No match
       
  5838 
       
  5839 /(?<=\d{3}(?!999))foo/
       
  5840     999foo
       
  5841  0: foo
       
  5842     123999foo 
       
  5843  0: foo
       
  5844     *** Failers
       
  5845 No match
       
  5846     123abcfoo
       
  5847 No match
       
  5848     
       
  5849 /(?<=(?!...999)\d{3})foo/
       
  5850     999foo
       
  5851  0: foo
       
  5852     123999foo 
       
  5853  0: foo
       
  5854     *** Failers
       
  5855 No match
       
  5856     123abcfoo
       
  5857 No match
       
  5858 
       
  5859 /(?<=\d{3}(?!999)...)foo/
       
  5860     123abcfoo
       
  5861  0: foo
       
  5862     123456foo 
       
  5863  0: foo
       
  5864     *** Failers
       
  5865 No match
       
  5866     123999foo  
       
  5867 No match
       
  5868     
       
  5869 /(?<=\d{3}...)(?<!999)foo/
       
  5870     123abcfoo   
       
  5871  0: foo
       
  5872     123456foo 
       
  5873  0: foo
       
  5874     *** Failers
       
  5875 No match
       
  5876     123999foo  
       
  5877 No match
       
  5878 
       
  5879 /<a[\s]+href[\s]*=[\s]*          # find <a href=
       
  5880  ([\"\'])?                       # find single or double quote
       
  5881  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
       
  5882                                  # quote, otherwise match up to next space
       
  5883 /isx
       
  5884     <a href=abcd xyz
       
  5885  0: <a href=abcd
       
  5886  1: <unset>
       
  5887  2: <unset>
       
  5888  3: abcd
       
  5889     <a href=\"abcd xyz pqr\" cats
       
  5890  0: <a href="abcd xyz pqr"
       
  5891  1: "
       
  5892  2: abcd xyz pqr
       
  5893     <a href=\'abcd xyz pqr\' cats
       
  5894  0: <a href='abcd xyz pqr'
       
  5895  1: '
       
  5896  2: abcd xyz pqr
       
  5897 
       
  5898 /<a\s+href\s*=\s*                # find <a href=
       
  5899  (["'])?                         # find single or double quote
       
  5900  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
       
  5901                                  # quote, otherwise match up to next space
       
  5902 /isx
       
  5903     <a href=abcd xyz
       
  5904  0: <a href=abcd
       
  5905  1: <unset>
       
  5906  2: <unset>
       
  5907  3: abcd
       
  5908     <a href=\"abcd xyz pqr\" cats
       
  5909  0: <a href="abcd xyz pqr"
       
  5910  1: "
       
  5911  2: abcd xyz pqr
       
  5912     <a href       =       \'abcd xyz pqr\' cats
       
  5913  0: <a href       =       'abcd xyz pqr'
       
  5914  1: '
       
  5915  2: abcd xyz pqr
       
  5916 
       
  5917 /<a\s+href(?>\s*)=(?>\s*)        # find <a href=
       
  5918  (["'])?                         # find single or double quote
       
  5919  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
       
  5920                                  # quote, otherwise match up to next space
       
  5921 /isx
       
  5922     <a href=abcd xyz
       
  5923  0: <a href=abcd
       
  5924  1: <unset>
       
  5925  2: <unset>
       
  5926  3: abcd
       
  5927     <a href=\"abcd xyz pqr\" cats
       
  5928  0: <a href="abcd xyz pqr"
       
  5929  1: "
       
  5930  2: abcd xyz pqr
       
  5931     <a href       =       \'abcd xyz pqr\' cats
       
  5932  0: <a href       =       'abcd xyz pqr'
       
  5933  1: '
       
  5934  2: abcd xyz pqr
       
  5935 
       
  5936 /((Z)+|A)*/
       
  5937     ZABCDEFG
       
  5938  0: ZA
       
  5939  1: A
       
  5940  2: Z
       
  5941 
       
  5942 /(Z()|A)*/
       
  5943     ZABCDEFG
       
  5944  0: ZA
       
  5945  1: A
       
  5946  2: 
       
  5947 
       
  5948 /(Z(())|A)*/
       
  5949     ZABCDEFG
       
  5950  0: ZA
       
  5951  1: A
       
  5952  2: 
       
  5953  3: 
       
  5954 
       
  5955 /((?>Z)+|A)*/
       
  5956     ZABCDEFG
       
  5957  0: ZA
       
  5958  1: A
       
  5959 
       
  5960 /((?>)+|A)*/
       
  5961     ZABCDEFG
       
  5962  0: 
       
  5963  1: 
       
  5964 
       
  5965 /a*/g
       
  5966     abbab
       
  5967  0: a
       
  5968  0: 
       
  5969  0: 
       
  5970  0: a
       
  5971  0: 
       
  5972  0: 
       
  5973 
       
  5974 /^[a-\d]/
       
  5975     abcde
       
  5976  0: a
       
  5977     -things
       
  5978  0: -
       
  5979     0digit
       
  5980  0: 0
       
  5981     *** Failers
       
  5982 No match
       
  5983     bcdef    
       
  5984 No match
       
  5985 
       
  5986 /^[\d-a]/
       
  5987     abcde
       
  5988  0: a
       
  5989     -things
       
  5990  0: -
       
  5991     0digit
       
  5992  0: 0
       
  5993     *** Failers
       
  5994 No match
       
  5995     bcdef    
       
  5996 No match
       
  5997     
       
  5998 /[[:space:]]+/
       
  5999     > \x09\x0a\x0c\x0d\x0b<
       
  6000  0:  \x09\x0a\x0c\x0d\x0b
       
  6001      
       
  6002 /[[:blank:]]+/
       
  6003     > \x09\x0a\x0c\x0d\x0b<
       
  6004  0:  \x09
       
  6005      
       
  6006 /[\s]+/
       
  6007     > \x09\x0a\x0c\x0d\x0b<
       
  6008  0:  \x09\x0a\x0c\x0d
       
  6009      
       
  6010 /\s+/
       
  6011     > \x09\x0a\x0c\x0d\x0b<
       
  6012  0:  \x09\x0a\x0c\x0d
       
  6013      
       
  6014 /ab/x
       
  6015     ab
       
  6016 No match
       
  6017 
       
  6018 /(?!\A)x/m
       
  6019   a\nxb\n
       
  6020  0: x
       
  6021 
       
  6022 /(?!^)x/m
       
  6023   a\nxb\n
       
  6024 No match
       
  6025 
       
  6026 /abc\Qabc\Eabc/
       
  6027     abcabcabc
       
  6028  0: abcabcabc
       
  6029     
       
  6030 /abc\Q(*+|\Eabc/
       
  6031     abc(*+|abc 
       
  6032  0: abc(*+|abc
       
  6033 
       
  6034 /   abc\Q abc\Eabc/x
       
  6035     abc abcabc
       
  6036  0: abc abcabc
       
  6037     *** Failers
       
  6038 No match
       
  6039     abcabcabc  
       
  6040 No match
       
  6041     
       
  6042 /abc#comment
       
  6043     \Q#not comment
       
  6044     literal\E/x
       
  6045     abc#not comment\n    literal     
       
  6046  0: abc#not comment\x0a    literal
       
  6047 
       
  6048 /abc#comment
       
  6049     \Q#not comment
       
  6050     literal/x
       
  6051     abc#not comment\n    literal     
       
  6052  0: abc#not comment\x0a    literal
       
  6053 
       
  6054 /abc#comment
       
  6055     \Q#not comment
       
  6056     literal\E #more comment
       
  6057     /x
       
  6058     abc#not comment\n    literal     
       
  6059  0: abc#not comment\x0a    literal
       
  6060 
       
  6061 /abc#comment
       
  6062     \Q#not comment
       
  6063     literal\E #more comment/x
       
  6064     abc#not comment\n    literal     
       
  6065  0: abc#not comment\x0a    literal
       
  6066 
       
  6067 /\Qabc\$xyz\E/
       
  6068     abc\\\$xyz
       
  6069  0: abc\$xyz
       
  6070 
       
  6071 /\Qabc\E\$\Qxyz\E/
       
  6072     abc\$xyz
       
  6073  0: abc$xyz
       
  6074 
       
  6075 /\Gabc/
       
  6076     abc
       
  6077  0: abc
       
  6078     *** Failers
       
  6079 No match
       
  6080     xyzabc  
       
  6081 No match
       
  6082 
       
  6083 /\Gabc./g
       
  6084     abc1abc2xyzabc3
       
  6085  0: abc1
       
  6086  0: abc2
       
  6087 
       
  6088 /abc./g
       
  6089     abc1abc2xyzabc3 
       
  6090  0: abc1
       
  6091  0: abc2
       
  6092  0: abc3
       
  6093 
       
  6094 /a(?x: b c )d/
       
  6095     XabcdY
       
  6096  0: abcd
       
  6097     *** Failers 
       
  6098 No match
       
  6099     Xa b c d Y 
       
  6100 No match
       
  6101 
       
  6102 /((?x)x y z | a b c)/
       
  6103     XabcY
       
  6104  0: abc
       
  6105  1: abc
       
  6106     AxyzB 
       
  6107  0: xyz
       
  6108  1: xyz
       
  6109 
       
  6110 /(?i)AB(?-i)C/
       
  6111     XabCY
       
  6112  0: abC
       
  6113     *** Failers
       
  6114 No match
       
  6115     XabcY  
       
  6116 No match
       
  6117 
       
  6118 /((?i)AB(?-i)C|D)E/
       
  6119     abCE
       
  6120  0: abCE
       
  6121  1: abC
       
  6122     DE
       
  6123  0: DE
       
  6124  1: D
       
  6125     *** Failers
       
  6126 No match
       
  6127     abcE
       
  6128 No match
       
  6129     abCe  
       
  6130 No match
       
  6131     dE
       
  6132 No match
       
  6133     De    
       
  6134 No match
       
  6135 
       
  6136 /(.*)\d+\1/
       
  6137     abc123abc
       
  6138  0: abc123abc
       
  6139  1: abc
       
  6140     abc123bc 
       
  6141  0: bc123bc
       
  6142  1: bc
       
  6143 
       
  6144 /(.*)\d+\1/s
       
  6145     abc123abc
       
  6146  0: abc123abc
       
  6147  1: abc
       
  6148     abc123bc 
       
  6149  0: bc123bc
       
  6150  1: bc
       
  6151     
       
  6152 /((.*))\d+\1/
       
  6153     abc123abc
       
  6154  0: abc123abc
       
  6155  1: abc
       
  6156  2: abc
       
  6157     abc123bc  
       
  6158  0: bc123bc
       
  6159  1: bc
       
  6160  2: bc
       
  6161 
       
  6162 /-- This tests for an IPv6 address in the form where it can have up to --/
       
  6163 /-- eight components, one and only one of which is empty. This must be --/
       
  6164 No match
       
  6165 /-- an internal component. --/
       
  6166 No match
       
  6167 
       
  6168 /^(?!:)                       # colon disallowed at start
       
  6169   (?:                         # start of item
       
  6170     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
       
  6171     (?(1)0 | () ) )           # if null previously matched, fail; else null
       
  6172     :                         # followed by colon
       
  6173   ){1,7}                      # end item; 1-7 of them required               
       
  6174   [0-9a-f]{1,4} $             # final hex number at end of string
       
  6175   (?(1)|.)                    # check that there was an empty component
       
  6176   /xi
       
  6177     a123::a123
       
  6178  0: a123::a123
       
  6179  1: 
       
  6180     a123:b342::abcd
       
  6181  0: a123:b342::abcd
       
  6182  1: 
       
  6183     a123:b342::324e:abcd
       
  6184  0: a123:b342::324e:abcd
       
  6185  1: 
       
  6186     a123:ddde:b342::324e:abcd
       
  6187  0: a123:ddde:b342::324e:abcd
       
  6188  1: 
       
  6189     a123:ddde:b342::324e:dcba:abcd
       
  6190  0: a123:ddde:b342::324e:dcba:abcd
       
  6191  1: 
       
  6192     a123:ddde:9999:b342::324e:dcba:abcd
       
  6193  0: a123:ddde:9999:b342::324e:dcba:abcd
       
  6194  1: 
       
  6195     *** Failers
       
  6196 No match
       
  6197     1:2:3:4:5:6:7:8
       
  6198 No match
       
  6199     a123:bce:ddde:9999:b342::324e:dcba:abcd
       
  6200 No match
       
  6201     a123::9999:b342::324e:dcba:abcd
       
  6202 No match
       
  6203     abcde:2:3:4:5:6:7:8
       
  6204 No match
       
  6205     ::1
       
  6206 No match
       
  6207     abcd:fee0:123::   
       
  6208 No match
       
  6209     :1
       
  6210 No match
       
  6211     1:  
       
  6212 No match
       
  6213 
       
  6214 /[z\Qa-d]\E]/
       
  6215     z
       
  6216  0: z
       
  6217     a
       
  6218  0: a
       
  6219     -
       
  6220  0: -
       
  6221     d
       
  6222  0: d
       
  6223     ] 
       
  6224  0: ]
       
  6225     *** Failers
       
  6226  0: a
       
  6227     b     
       
  6228 No match
       
  6229 
       
  6230 /[\z\C]/
       
  6231     z
       
  6232  0: z
       
  6233     C 
       
  6234  0: C
       
  6235     
       
  6236 /\M/
       
  6237     M 
       
  6238  0: M
       
  6239     
       
  6240 /(a+)*b/
       
  6241     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
       
  6242 No match
       
  6243     
       
  6244 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
       
  6245     REGular
       
  6246  0: REGular
       
  6247     regulaer
       
  6248  0: regulaer
       
  6249     Regex  
       
  6250  0: Regex
       
  6251     regulär 
       
  6252  0: regul\xe4r
       
  6253 
       
  6254 /Åæåä[à-ÿÀ-ß]+/
       
  6255     Åæåäà
       
  6256  0: \xc5\xe6\xe5\xe4\xe0
       
  6257     Åæåäÿ
       
  6258  0: \xc5\xe6\xe5\xe4\xff
       
  6259     ÅæåäÀ
       
  6260  0: \xc5\xe6\xe5\xe4\xc0
       
  6261     Åæåäß
       
  6262  0: \xc5\xe6\xe5\xe4\xdf
       
  6263 
       
  6264 /(?<=Z)X./
       
  6265   \x84XAZXB
       
  6266  0: XB
       
  6267 
       
  6268 /ab cd (?x) de fg/
       
  6269     ab cd defg
       
  6270  0: ab cd defg
       
  6271 
       
  6272 /ab cd(?x) de fg/
       
  6273     ab cddefg
       
  6274  0: ab cddefg
       
  6275     ** Failers 
       
  6276 No match
       
  6277     abcddefg
       
  6278 No match
       
  6279 
       
  6280 /(?<![^f]oo)(bar)/
       
  6281     foobarX 
       
  6282  0: bar
       
  6283  1: bar
       
  6284     ** Failers 
       
  6285 No match
       
  6286     boobarX
       
  6287 No match
       
  6288 
       
  6289 /(?<![^f])X/
       
  6290     offX
       
  6291  0: X
       
  6292     ** Failers
       
  6293 No match
       
  6294     onyX  
       
  6295 No match
       
  6296 
       
  6297 /(?<=[^f])X/
       
  6298     onyX
       
  6299  0: X
       
  6300     ** Failers
       
  6301 No match
       
  6302     offX 
       
  6303 No match
       
  6304 
       
  6305 /^/mg
       
  6306     a\nb\nc\n
       
  6307  0: 
       
  6308  0: 
       
  6309  0: 
       
  6310     \ 
       
  6311  0: 
       
  6312     
       
  6313 /(?<=C\n)^/mg
       
  6314     A\nC\nC\n 
       
  6315  0: 
       
  6316 
       
  6317 /(?:(?(1)a|b)(X))+/
       
  6318     bXaX
       
  6319  0: bXaX
       
  6320  1: X
       
  6321 
       
  6322 /(?:(?(1)\1a|b)(X|Y))+/
       
  6323     bXXaYYaY
       
  6324  0: bXXaYYaY
       
  6325  1: Y
       
  6326     bXYaXXaX  
       
  6327  0: bX
       
  6328  1: X
       
  6329 
       
  6330 /()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
       
  6331     bXXaYYaY
       
  6332  0: bX
       
  6333  1: 
       
  6334  2: 
       
  6335  3: 
       
  6336  4: 
       
  6337  5: 
       
  6338  6: 
       
  6339  7: 
       
  6340  8: 
       
  6341  9: 
       
  6342 10: X
       
  6343 
       
  6344 /[[,abc,]+]/
       
  6345     abc]
       
  6346  0: abc]
       
  6347     a,b]
       
  6348  0: a,b]
       
  6349     [a,b,c]  
       
  6350  0: [a,b,c]
       
  6351 
       
  6352 /(?-x: )/x
       
  6353     A\x20B
       
  6354  0:  
       
  6355     
       
  6356 "(?x)(?-x: \s*#\s*)"
       
  6357     A # B
       
  6358  0:  # 
       
  6359     ** Failers
       
  6360 No match
       
  6361     #  
       
  6362 No match
       
  6363 
       
  6364 "(?x-is)(?:(?-ixs) \s*#\s*) include"
       
  6365     A #include
       
  6366  0:  #include
       
  6367     ** Failers
       
  6368 No match
       
  6369     A#include  
       
  6370 No match
       
  6371     A #Include
       
  6372 No match
       
  6373 
       
  6374 /a*b*\w/
       
  6375     aaabbbb
       
  6376  0: aaabbbb
       
  6377     aaaa
       
  6378  0: aaaa
       
  6379     a
       
  6380  0: a
       
  6381 
       
  6382 /a*b?\w/
       
  6383     aaabbbb
       
  6384  0: aaabb
       
  6385     aaaa
       
  6386  0: aaaa
       
  6387     a
       
  6388  0: a
       
  6389 
       
  6390 /a*b{0,4}\w/
       
  6391     aaabbbb
       
  6392  0: aaabbbb
       
  6393     aaaa
       
  6394  0: aaaa
       
  6395     a
       
  6396  0: a
       
  6397 
       
  6398 /a*b{0,}\w/
       
  6399     aaabbbb
       
  6400  0: aaabbbb
       
  6401     aaaa
       
  6402  0: aaaa
       
  6403     a
       
  6404  0: a
       
  6405     
       
  6406 /a*\d*\w/
       
  6407     0a
       
  6408  0: 0a
       
  6409     a 
       
  6410  0: a
       
  6411     
       
  6412 /a*b *\w/x
       
  6413     a 
       
  6414  0: a
       
  6415 
       
  6416 /a*b#comment
       
  6417   *\w/x
       
  6418     a 
       
  6419  0: a
       
  6420 
       
  6421 /a* b *\w/x
       
  6422     a 
       
  6423  0: a
       
  6424 
       
  6425 /^\w+=.*(\\\n.*)*/
       
  6426     abc=xyz\\\npqr
       
  6427  0: abc=xyz\
       
  6428 
       
  6429 /(?=(\w+))\1:/
       
  6430     abcd:
       
  6431  0: abcd:
       
  6432  1: abcd
       
  6433 
       
  6434 /^(?=(\w+))\1:/
       
  6435     abcd:
       
  6436  0: abcd:
       
  6437  1: abcd
       
  6438 
       
  6439 /^\Eabc/
       
  6440     abc
       
  6441  0: abc
       
  6442     
       
  6443 /^[\Eabc]/
       
  6444     a
       
  6445  0: a
       
  6446     ** Failers 
       
  6447 No match
       
  6448     E 
       
  6449 No match
       
  6450     
       
  6451 /^[a-\Ec]/
       
  6452     b
       
  6453  0: b
       
  6454     ** Failers
       
  6455 No match
       
  6456     -
       
  6457 No match
       
  6458     E    
       
  6459 No match
       
  6460 
       
  6461 /^[a\E\E-\Ec]/
       
  6462     b
       
  6463  0: b
       
  6464     ** Failers
       
  6465 No match
       
  6466     -
       
  6467 No match
       
  6468     E    
       
  6469 No match
       
  6470 
       
  6471 /^[\E\Qa\E-\Qz\E]+/
       
  6472     b
       
  6473  0: b
       
  6474     ** Failers
       
  6475 No match
       
  6476     -  
       
  6477 No match
       
  6478     
       
  6479 /^[a\Q]bc\E]/
       
  6480     a
       
  6481  0: a
       
  6482     ]
       
  6483  0: ]
       
  6484     c
       
  6485  0: c
       
  6486     
       
  6487 /^[a-\Q\E]/
       
  6488     a
       
  6489  0: a
       
  6490     -     
       
  6491  0: -
       
  6492 
       
  6493 /^(a()*)*/
       
  6494     aaaa
       
  6495  0: aaaa
       
  6496  1: a
       
  6497  2: 
       
  6498 
       
  6499 /^(?:a(?:(?:))*)*/
       
  6500     aaaa
       
  6501  0: aaaa
       
  6502 
       
  6503 /^(a()+)+/
       
  6504     aaaa
       
  6505  0: aaaa
       
  6506  1: a
       
  6507  2: 
       
  6508 
       
  6509 /^(?:a(?:(?:))+)+/
       
  6510     aaaa
       
  6511  0: aaaa
       
  6512 
       
  6513 /(a){0,3}(?(1)b|(c|))*D/
       
  6514     abbD
       
  6515  0: abbD
       
  6516  1: a
       
  6517     ccccD
       
  6518  0: ccccD
       
  6519  1: <unset>
       
  6520  2: 
       
  6521     D  
       
  6522  0: D
       
  6523  1: <unset>
       
  6524  2: 
       
  6525 
       
  6526 /(a|)*\d/
       
  6527   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  6528 No match
       
  6529   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6530  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6531  1: 
       
  6532 
       
  6533 /(?>a|)*\d/
       
  6534   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  6535 No match
       
  6536   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6537  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6538 
       
  6539 /(?:a|)*\d/
       
  6540   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  6541 No match
       
  6542   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6543  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  6544 
       
  6545 /\Z/g
       
  6546   abc\n
       
  6547  0: 
       
  6548  0: 
       
  6549   
       
  6550 /^(?s)(?>.*)(?<!\n)/
       
  6551   abc
       
  6552  0: abc
       
  6553   abc\n  
       
  6554 No match
       
  6555 
       
  6556 /^(?![^\n]*\n\z)/
       
  6557   abc
       
  6558  0: 
       
  6559   abc\n 
       
  6560 No match
       
  6561   
       
  6562 /\z(?<!\n)/
       
  6563   abc
       
  6564  0: 
       
  6565   abc\n  
       
  6566 No match
       
  6567 
       
  6568 /(.*(.)?)*/
       
  6569     abcd
       
  6570  0: abcd
       
  6571  1: 
       
  6572 
       
  6573 /( (A | (?(1)0|) )*   )/x
       
  6574     abcd
       
  6575  0: 
       
  6576  1: 
       
  6577  2: 
       
  6578 
       
  6579 /( ( (?(1)0|) )*   )/x
       
  6580     abcd
       
  6581  0: 
       
  6582  1: 
       
  6583  2: 
       
  6584 
       
  6585 /(  (?(1)0|)*   )/x
       
  6586     abcd
       
  6587  0: 
       
  6588  1: 
       
  6589 
       
  6590 /[[:abcd:xyz]]/
       
  6591     a]
       
  6592  0: a]
       
  6593     :] 
       
  6594  0: :]
       
  6595     
       
  6596 /[abc[:x\]pqr]/
       
  6597     a
       
  6598  0: a
       
  6599     [
       
  6600  0: [
       
  6601     :
       
  6602  0: :
       
  6603     ]
       
  6604  0: ]
       
  6605     p    
       
  6606  0: p
       
  6607 
       
  6608 /.*[op][xyz]/
       
  6609     fooabcfoo
       
  6610 No match
       
  6611 
       
  6612 / End of testinput1 /