libraries/spcre/libpcre/pcre/testdata/testinput1
changeset 0 7f656887cf89
equal deleted inserted replaced
-1:000000000000 0:7f656887cf89
       
     1 /the quick brown fox/
       
     2     the quick brown fox
       
     3     The quick brown FOX
       
     4     What do you know about the quick brown fox?
       
     5     What do you know about THE QUICK BROWN FOX?
       
     6 
       
     7 /The quick brown fox/i
       
     8     the quick brown fox
       
     9     The quick brown FOX
       
    10     What do you know about the quick brown fox?
       
    11     What do you know about THE QUICK BROWN FOX?
       
    12 
       
    13 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
       
    14     abcd\t\n\r\f\a\e9;\$\\?caxyz
       
    15 
       
    16 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
       
    17     abxyzpqrrrabbxyyyypqAzz
       
    18     abxyzpqrrrabbxyyyypqAzz
       
    19     aabxyzpqrrrabbxyyyypqAzz
       
    20     aaabxyzpqrrrabbxyyyypqAzz
       
    21     aaaabxyzpqrrrabbxyyyypqAzz
       
    22     abcxyzpqrrrabbxyyyypqAzz
       
    23     aabcxyzpqrrrabbxyyyypqAzz
       
    24     aaabcxyzpqrrrabbxyyyypAzz
       
    25     aaabcxyzpqrrrabbxyyyypqAzz
       
    26     aaabcxyzpqrrrabbxyyyypqqAzz
       
    27     aaabcxyzpqrrrabbxyyyypqqqAzz
       
    28     aaabcxyzpqrrrabbxyyyypqqqqAzz
       
    29     aaabcxyzpqrrrabbxyyyypqqqqqAzz
       
    30     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
       
    31     aaaabcxyzpqrrrabbxyyyypqAzz
       
    32     abxyzzpqrrrabbxyyyypqAzz
       
    33     aabxyzzzpqrrrabbxyyyypqAzz
       
    34     aaabxyzzzzpqrrrabbxyyyypqAzz
       
    35     aaaabxyzzzzpqrrrabbxyyyypqAzz
       
    36     abcxyzzpqrrrabbxyyyypqAzz
       
    37     aabcxyzzzpqrrrabbxyyyypqAzz
       
    38     aaabcxyzzzzpqrrrabbxyyyypqAzz
       
    39     aaaabcxyzzzzpqrrrabbxyyyypqAzz
       
    40     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
       
    41     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
       
    42     aaabcxyzpqrrrabbxyyyypABzz
       
    43     aaabcxyzpqrrrabbxyyyypABBzz
       
    44     >>>aaabxyzpqrrrabbxyyyypqAzz
       
    45     >aaaabxyzpqrrrabbxyyyypqAzz
       
    46     >>>>abcxyzpqrrrabbxyyyypqAzz
       
    47     *** Failers
       
    48     abxyzpqrrabbxyyyypqAzz
       
    49     abxyzpqrrrrabbxyyyypqAzz
       
    50     abxyzpqrrrabxyyyypqAzz
       
    51     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
       
    52     aaaabcxyzzzzpqrrrabbbxyyypqAzz
       
    53     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
       
    54 
       
    55 /^(abc){1,2}zz/
       
    56     abczz
       
    57     abcabczz
       
    58     *** Failers
       
    59     zz
       
    60     abcabcabczz
       
    61     >>abczz
       
    62 
       
    63 /^(b+?|a){1,2}?c/
       
    64     bc
       
    65     bbc
       
    66     bbbc
       
    67     bac
       
    68     bbac
       
    69     aac
       
    70     abbbbbbbbbbbc
       
    71     bbbbbbbbbbbac
       
    72     *** Failers
       
    73     aaac
       
    74     abbbbbbbbbbbac
       
    75 
       
    76 /^(b+|a){1,2}c/
       
    77     bc
       
    78     bbc
       
    79     bbbc
       
    80     bac
       
    81     bbac
       
    82     aac
       
    83     abbbbbbbbbbbc
       
    84     bbbbbbbbbbbac
       
    85     *** Failers
       
    86     aaac
       
    87     abbbbbbbbbbbac
       
    88 
       
    89 /^(b+|a){1,2}?bc/
       
    90     bbc
       
    91 
       
    92 /^(b*|ba){1,2}?bc/
       
    93     babc
       
    94     bbabc
       
    95     bababc
       
    96     *** Failers
       
    97     bababbc
       
    98     babababc
       
    99 
       
   100 /^(ba|b*){1,2}?bc/
       
   101     babc
       
   102     bbabc
       
   103     bababc
       
   104     *** Failers
       
   105     bababbc
       
   106     babababc
       
   107 
       
   108 /^\ca\cA\c[\c{\c:/
       
   109     \x01\x01\e;z
       
   110 
       
   111 /^[ab\]cde]/
       
   112     athing
       
   113     bthing
       
   114     ]thing
       
   115     cthing
       
   116     dthing
       
   117     ething
       
   118     *** Failers
       
   119     fthing
       
   120     [thing
       
   121     \\thing
       
   122 
       
   123 /^[]cde]/
       
   124     ]thing
       
   125     cthing
       
   126     dthing
       
   127     ething
       
   128     *** Failers
       
   129     athing
       
   130     fthing
       
   131 
       
   132 /^[^ab\]cde]/
       
   133     fthing
       
   134     [thing
       
   135     \\thing
       
   136     *** Failers
       
   137     athing
       
   138     bthing
       
   139     ]thing
       
   140     cthing
       
   141     dthing
       
   142     ething
       
   143 
       
   144 /^[^]cde]/
       
   145     athing
       
   146     fthing
       
   147     *** Failers
       
   148     ]thing
       
   149     cthing
       
   150     dthing
       
   151     ething
       
   152 
       
   153 /^\/
       
   154     
       
   155 
       
   156 /^/
       
   157     
       
   158 
       
   159 /^[0-9]+$/
       
   160     0
       
   161     1
       
   162     2
       
   163     3
       
   164     4
       
   165     5
       
   166     6
       
   167     7
       
   168     8
       
   169     9
       
   170     10
       
   171     100
       
   172     *** Failers
       
   173     abc
       
   174 
       
   175 /^.*nter/
       
   176     enter
       
   177     inter
       
   178     uponter
       
   179 
       
   180 /^xxx[0-9]+$/
       
   181     xxx0
       
   182     xxx1234
       
   183     *** Failers
       
   184     xxx
       
   185 
       
   186 /^.+[0-9][0-9][0-9]$/
       
   187     x123
       
   188     xx123
       
   189     123456
       
   190     *** Failers
       
   191     123
       
   192     x1234
       
   193 
       
   194 /^.+?[0-9][0-9][0-9]$/
       
   195     x123
       
   196     xx123
       
   197     123456
       
   198     *** Failers
       
   199     123
       
   200     x1234
       
   201 
       
   202 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
       
   203     abc!pqr=apquxz.ixr.zzz.ac.uk
       
   204     *** Failers
       
   205     !pqr=apquxz.ixr.zzz.ac.uk
       
   206     abc!=apquxz.ixr.zzz.ac.uk
       
   207     abc!pqr=apquxz:ixr.zzz.ac.uk
       
   208     abc!pqr=apquxz.ixr.zzz.ac.ukk
       
   209 
       
   210 /:/
       
   211     Well, we need a colon: somewhere
       
   212     *** Fail if we don't
       
   213 
       
   214 /([\da-f:]+)$/i
       
   215     0abc
       
   216     abc
       
   217     fed
       
   218     E
       
   219     ::
       
   220     5f03:12C0::932e
       
   221     fed def
       
   222     Any old stuff
       
   223     *** Failers
       
   224     0zzz
       
   225     gzzz
       
   226     fed\x20
       
   227     Any old rubbish
       
   228 
       
   229 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
       
   230     .1.2.3
       
   231     A.12.123.0
       
   232     *** Failers
       
   233     .1.2.3333
       
   234     1.2.3
       
   235     1234.2.3
       
   236 
       
   237 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
       
   238     1 IN SOA non-sp1 non-sp2(
       
   239     1    IN    SOA    non-sp1    non-sp2   (
       
   240     *** Failers
       
   241     1IN SOA non-sp1 non-sp2(
       
   242 
       
   243 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
       
   244     a.
       
   245     Z.
       
   246     2.
       
   247     ab-c.pq-r.
       
   248     sxk.zzz.ac.uk.
       
   249     x-.y-.
       
   250     *** Failers
       
   251     -abc.peq.
       
   252 
       
   253 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
       
   254     *.a
       
   255     *.b0-a
       
   256     *.c3-b.c
       
   257     *.c-a.b-c
       
   258     *** Failers
       
   259     *.0
       
   260     *.a-
       
   261     *.a-b.c-
       
   262     *.c-a.0-c
       
   263 
       
   264 /^(?=ab(de))(abd)(e)/
       
   265     abde
       
   266 
       
   267 /^(?!(ab)de|x)(abd)(f)/
       
   268     abdf
       
   269 
       
   270 /^(?=(ab(cd)))(ab)/
       
   271     abcd
       
   272 
       
   273 /^[\da-f](\.[\da-f])*$/i
       
   274     a.b.c.d
       
   275     A.B.C.D
       
   276     a.b.c.1.2.3.C
       
   277 
       
   278 /^\".*\"\s*(;.*)?$/
       
   279     \"1234\"
       
   280     \"abcd\" ;
       
   281     \"\" ; rhubarb
       
   282     *** Failers
       
   283     \"1234\" : things
       
   284 
       
   285 /^$/
       
   286     \
       
   287     *** Failers
       
   288 
       
   289 /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
       
   290     ab c
       
   291     *** Failers
       
   292     abc
       
   293     ab cde
       
   294 
       
   295 /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
       
   296     ab c
       
   297     *** Failers
       
   298     abc
       
   299     ab cde
       
   300 
       
   301 /^   a\ b[c ]d       $/x
       
   302     a bcd
       
   303     a b d
       
   304     *** Failers
       
   305     abcd
       
   306     ab d
       
   307 
       
   308 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
       
   309     abcdefhijklm
       
   310 
       
   311 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
       
   312     abcdefhijklm
       
   313 
       
   314 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
       
   315     a+ Z0+\x08\n\x1d\x12
       
   316 
       
   317 /^[.^$|()*+?{,}]+/
       
   318     .^\$(*+)|{?,?}
       
   319 
       
   320 /^a*\w/
       
   321     z
       
   322     az
       
   323     aaaz
       
   324     a
       
   325     aa
       
   326     aaaa
       
   327     a+
       
   328     aa+
       
   329 
       
   330 /^a*?\w/
       
   331     z
       
   332     az
       
   333     aaaz
       
   334     a
       
   335     aa
       
   336     aaaa
       
   337     a+
       
   338     aa+
       
   339 
       
   340 /^a+\w/
       
   341     az
       
   342     aaaz
       
   343     aa
       
   344     aaaa
       
   345     aa+
       
   346 
       
   347 /^a+?\w/
       
   348     az
       
   349     aaaz
       
   350     aa
       
   351     aaaa
       
   352     aa+
       
   353 
       
   354 /^\d{8}\w{2,}/
       
   355     1234567890
       
   356     12345678ab
       
   357     12345678__
       
   358     *** Failers
       
   359     1234567
       
   360 
       
   361 /^[aeiou\d]{4,5}$/
       
   362     uoie
       
   363     1234
       
   364     12345
       
   365     aaaaa
       
   366     *** Failers
       
   367     123456
       
   368 
       
   369 /^[aeiou\d]{4,5}?/
       
   370     uoie
       
   371     1234
       
   372     12345
       
   373     aaaaa
       
   374     123456
       
   375 
       
   376 /\A(abc|def)=(\1){2,3}\Z/
       
   377     abc=abcabc
       
   378     def=defdefdef
       
   379     *** Failers
       
   380     abc=defdef
       
   381 
       
   382 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
       
   383     abcdefghijkcda2
       
   384     abcdefghijkkkkcda2
       
   385 
       
   386 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/
       
   387     cataract cataract23
       
   388     catatonic catatonic23
       
   389     caterpillar caterpillar23
       
   390 
       
   391 
       
   392 /^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]/
       
   393     From abcd  Mon Sep 01 12:33:02 1997
       
   394 
       
   395 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
       
   396     From abcd  Mon Sep 01 12:33:02 1997
       
   397     From abcd  Mon Sep  1 12:33:02 1997
       
   398     *** Failers
       
   399     From abcd  Sep 01 12:33:02 1997
       
   400 
       
   401 /^12.34/s
       
   402     12\n34
       
   403     12\r34
       
   404 
       
   405 /\w+(?=\t)/
       
   406     the quick brown\t fox
       
   407 
       
   408 /foo(?!bar)(.*)/
       
   409     foobar is foolish see?
       
   410 
       
   411 /(?:(?!foo)...|^.{0,2})bar(.*)/
       
   412     foobar crowbar etc
       
   413     barrel
       
   414     2barrel
       
   415     A barrel
       
   416 
       
   417 /^(\D*)(?=\d)(?!123)/
       
   418     abc456
       
   419     *** Failers
       
   420     abc123
       
   421 
       
   422 /^1234(?# test newlines
       
   423   inside)/
       
   424     1234
       
   425 
       
   426 /^1234 #comment in extended re
       
   427   /x
       
   428     1234
       
   429 
       
   430 /#rhubarb
       
   431   abcd/x
       
   432     abcd
       
   433 
       
   434 /^abcd#rhubarb/x
       
   435     abcd
       
   436 
       
   437 /^(a)\1{2,3}(.)/
       
   438     aaab
       
   439     aaaab
       
   440     aaaaab
       
   441     aaaaaab
       
   442 
       
   443 /(?!^)abc/
       
   444     the abc
       
   445     *** Failers
       
   446     abc
       
   447 
       
   448 /(?=^)abc/
       
   449     abc
       
   450     *** Failers
       
   451     the abc
       
   452 
       
   453 /^[ab]{1,3}(ab*|b)/
       
   454     aabbbbb
       
   455 
       
   456 /^[ab]{1,3}?(ab*|b)/
       
   457     aabbbbb
       
   458 
       
   459 /^[ab]{1,3}?(ab*?|b)/
       
   460     aabbbbb
       
   461 
       
   462 /^[ab]{1,3}(ab*?|b)/
       
   463     aabbbbb
       
   464 
       
   465 /  (?: [\040\t] |  \(
       
   466 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   467 \)  )*                          # optional leading comment
       
   468 (?:    (?:
       
   469 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   470 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   471 |
       
   472 " (?:                      # opening quote...
       
   473 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   474 |                     #    or
       
   475 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   476 )* "  # closing quote
       
   477 )                    # initial word
       
   478 (?:  (?: [\040\t] |  \(
       
   479 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   480 \)  )*  \.  (?: [\040\t] |  \(
       
   481 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   482 \)  )*   (?:
       
   483 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   484 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   485 |
       
   486 " (?:                      # opening quote...
       
   487 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   488 |                     #    or
       
   489 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   490 )* "  # closing quote
       
   491 )  )* # further okay, if led by a period
       
   492 (?: [\040\t] |  \(
       
   493 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   494 \)  )*  @  (?: [\040\t] |  \(
       
   495 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   496 \)  )*    (?:
       
   497 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   498 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   499 |   \[                         # [
       
   500 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   501 \]                        #           ]
       
   502 )                           # initial subdomain
       
   503 (?:                                  #
       
   504 (?: [\040\t] |  \(
       
   505 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   506 \)  )*  \.                        # if led by a period...
       
   507 (?: [\040\t] |  \(
       
   508 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   509 \)  )*   (?:
       
   510 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   511 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   512 |   \[                         # [
       
   513 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   514 \]                        #           ]
       
   515 )                     #   ...further okay
       
   516 )*
       
   517 # address
       
   518 |                     #  or
       
   519 (?:
       
   520 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   521 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   522 |
       
   523 " (?:                      # opening quote...
       
   524 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   525 |                     #    or
       
   526 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   527 )* "  # closing quote
       
   528 )             # one word, optionally followed by....
       
   529 (?:
       
   530 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
       
   531 \(
       
   532 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   533 \)       |  # comments, or...
       
   534 
       
   535 " (?:                      # opening quote...
       
   536 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   537 |                     #    or
       
   538 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   539 )* "  # closing quote
       
   540 # quoted strings
       
   541 )*
       
   542 <  (?: [\040\t] |  \(
       
   543 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   544 \)  )*                     # leading <
       
   545 (?:  @  (?: [\040\t] |  \(
       
   546 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   547 \)  )*    (?:
       
   548 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   549 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   550 |   \[                         # [
       
   551 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   552 \]                        #           ]
       
   553 )                           # initial subdomain
       
   554 (?:                                  #
       
   555 (?: [\040\t] |  \(
       
   556 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   557 \)  )*  \.                        # if led by a period...
       
   558 (?: [\040\t] |  \(
       
   559 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   560 \)  )*   (?:
       
   561 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   562 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   563 |   \[                         # [
       
   564 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   565 \]                        #           ]
       
   566 )                     #   ...further okay
       
   567 )*
       
   568 
       
   569 (?:  (?: [\040\t] |  \(
       
   570 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   571 \)  )*  ,  (?: [\040\t] |  \(
       
   572 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   573 \)  )*  @  (?: [\040\t] |  \(
       
   574 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   575 \)  )*    (?:
       
   576 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   577 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   578 |   \[                         # [
       
   579 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   580 \]                        #           ]
       
   581 )                           # initial subdomain
       
   582 (?:                                  #
       
   583 (?: [\040\t] |  \(
       
   584 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   585 \)  )*  \.                        # if led by a period...
       
   586 (?: [\040\t] |  \(
       
   587 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   588 \)  )*   (?:
       
   589 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   590 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   591 |   \[                         # [
       
   592 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   593 \]                        #           ]
       
   594 )                     #   ...further okay
       
   595 )*
       
   596 )* # further okay, if led by comma
       
   597 :                                # closing colon
       
   598 (?: [\040\t] |  \(
       
   599 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   600 \)  )*  )? #       optional route
       
   601 (?:
       
   602 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   603 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   604 |
       
   605 " (?:                      # opening quote...
       
   606 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   607 |                     #    or
       
   608 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   609 )* "  # closing quote
       
   610 )                    # initial word
       
   611 (?:  (?: [\040\t] |  \(
       
   612 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   613 \)  )*  \.  (?: [\040\t] |  \(
       
   614 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   615 \)  )*   (?:
       
   616 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   617 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   618 |
       
   619 " (?:                      # opening quote...
       
   620 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
       
   621 |                     #    or
       
   622 \\ [^\x80-\xff]           #   Escaped something (something != CR)
       
   623 )* "  # closing quote
       
   624 )  )* # further okay, if led by a period
       
   625 (?: [\040\t] |  \(
       
   626 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   627 \)  )*  @  (?: [\040\t] |  \(
       
   628 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   629 \)  )*    (?:
       
   630 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   631 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   632 |   \[                         # [
       
   633 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   634 \]                        #           ]
       
   635 )                           # initial subdomain
       
   636 (?:                                  #
       
   637 (?: [\040\t] |  \(
       
   638 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   639 \)  )*  \.                        # if led by a period...
       
   640 (?: [\040\t] |  \(
       
   641 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   642 \)  )*   (?:
       
   643 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   644 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   645 |   \[                         # [
       
   646 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
       
   647 \]                        #           ]
       
   648 )                     #   ...further okay
       
   649 )*
       
   650 #       address spec
       
   651 (?: [\040\t] |  \(
       
   652 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   653 \)  )*  > #                  trailing >
       
   654 # name and address
       
   655 )  (?: [\040\t] |  \(
       
   656 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
       
   657 \)  )*                       # optional trailing comment
       
   658 /x
       
   659     Alan Other <user\@dom.ain>
       
   660     <user\@dom.ain>
       
   661     user\@dom.ain
       
   662     \"A. Other\" <user.1234\@dom.ain> (a comment)
       
   663     A. Other <user.1234\@dom.ain> (a comment)
       
   664     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
       
   665     A missing angle <user\@some.where
       
   666     *** Failers
       
   667     The quick brown fox
       
   668 
       
   669 /[\040\t]*                    # Nab whitespace.
       
   670 (?:
       
   671 \(                              #  (
       
   672 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   673 (?:                                 #       (
       
   674 (?:  \\ [^\x80-\xff]  |
       
   675 \(                            #  (
       
   676 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   677 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   678 \)                           #                       )
       
   679 )    #         special
       
   680 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   681 )*                                  #            )*
       
   682 \)                             #                )
       
   683 [\040\t]* )*    # If comment found, allow more spaces.
       
   684 # optional leading comment
       
   685 (?:
       
   686 (?:
       
   687 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   688 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   689 # Atom
       
   690 |                       #  or
       
   691 "                                     # "
       
   692 [^\\\x80-\xff\n\015"] *                            #   normal
       
   693 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
   694 "                                     #        "
       
   695 # Quoted string
       
   696 )
       
   697 [\040\t]*                    # Nab whitespace.
       
   698 (?:
       
   699 \(                              #  (
       
   700 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   701 (?:                                 #       (
       
   702 (?:  \\ [^\x80-\xff]  |
       
   703 \(                            #  (
       
   704 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   705 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   706 \)                           #                       )
       
   707 )    #         special
       
   708 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   709 )*                                  #            )*
       
   710 \)                             #                )
       
   711 [\040\t]* )*    # If comment found, allow more spaces.
       
   712 (?:
       
   713 \.
       
   714 [\040\t]*                    # Nab whitespace.
       
   715 (?:
       
   716 \(                              #  (
       
   717 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   718 (?:                                 #       (
       
   719 (?:  \\ [^\x80-\xff]  |
       
   720 \(                            #  (
       
   721 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   722 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   723 \)                           #                       )
       
   724 )    #         special
       
   725 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   726 )*                                  #            )*
       
   727 \)                             #                )
       
   728 [\040\t]* )*    # If comment found, allow more spaces.
       
   729 (?:
       
   730 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   731 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   732 # Atom
       
   733 |                       #  or
       
   734 "                                     # "
       
   735 [^\\\x80-\xff\n\015"] *                            #   normal
       
   736 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
   737 "                                     #        "
       
   738 # Quoted string
       
   739 )
       
   740 [\040\t]*                    # Nab whitespace.
       
   741 (?:
       
   742 \(                              #  (
       
   743 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   744 (?:                                 #       (
       
   745 (?:  \\ [^\x80-\xff]  |
       
   746 \(                            #  (
       
   747 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   748 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   749 \)                           #                       )
       
   750 )    #         special
       
   751 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   752 )*                                  #            )*
       
   753 \)                             #                )
       
   754 [\040\t]* )*    # If comment found, allow more spaces.
       
   755 # additional words
       
   756 )*
       
   757 @
       
   758 [\040\t]*                    # Nab whitespace.
       
   759 (?:
       
   760 \(                              #  (
       
   761 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   762 (?:                                 #       (
       
   763 (?:  \\ [^\x80-\xff]  |
       
   764 \(                            #  (
       
   765 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   766 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   767 \)                           #                       )
       
   768 )    #         special
       
   769 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   770 )*                                  #            )*
       
   771 \)                             #                )
       
   772 [\040\t]* )*    # If comment found, allow more spaces.
       
   773 (?:
       
   774 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   775 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   776 |
       
   777 \[                            # [
       
   778 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
   779 \]                           #           ]
       
   780 )
       
   781 [\040\t]*                    # Nab whitespace.
       
   782 (?:
       
   783 \(                              #  (
       
   784 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   785 (?:                                 #       (
       
   786 (?:  \\ [^\x80-\xff]  |
       
   787 \(                            #  (
       
   788 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   789 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   790 \)                           #                       )
       
   791 )    #         special
       
   792 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   793 )*                                  #            )*
       
   794 \)                             #                )
       
   795 [\040\t]* )*    # If comment found, allow more spaces.
       
   796 # optional trailing comments
       
   797 (?:
       
   798 \.
       
   799 [\040\t]*                    # Nab whitespace.
       
   800 (?:
       
   801 \(                              #  (
       
   802 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   803 (?:                                 #       (
       
   804 (?:  \\ [^\x80-\xff]  |
       
   805 \(                            #  (
       
   806 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   807 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   808 \)                           #                       )
       
   809 )    #         special
       
   810 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   811 )*                                  #            )*
       
   812 \)                             #                )
       
   813 [\040\t]* )*    # If comment found, allow more spaces.
       
   814 (?:
       
   815 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   816 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   817 |
       
   818 \[                            # [
       
   819 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
   820 \]                           #           ]
       
   821 )
       
   822 [\040\t]*                    # Nab whitespace.
       
   823 (?:
       
   824 \(                              #  (
       
   825 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   826 (?:                                 #       (
       
   827 (?:  \\ [^\x80-\xff]  |
       
   828 \(                            #  (
       
   829 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   830 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   831 \)                           #                       )
       
   832 )    #         special
       
   833 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   834 )*                                  #            )*
       
   835 \)                             #                )
       
   836 [\040\t]* )*    # If comment found, allow more spaces.
       
   837 # optional trailing comments
       
   838 )*
       
   839 # address
       
   840 |                             #  or
       
   841 (?:
       
   842 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   843 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   844 # Atom
       
   845 |                       #  or
       
   846 "                                     # "
       
   847 [^\\\x80-\xff\n\015"] *                            #   normal
       
   848 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
   849 "                                     #        "
       
   850 # Quoted string
       
   851 )
       
   852 # leading word
       
   853 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *               # "normal" atoms and or spaces
       
   854 (?:
       
   855 (?:
       
   856 \(                              #  (
       
   857 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   858 (?:                                 #       (
       
   859 (?:  \\ [^\x80-\xff]  |
       
   860 \(                            #  (
       
   861 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   862 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   863 \)                           #                       )
       
   864 )    #         special
       
   865 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   866 )*                                  #            )*
       
   867 \)                             #                )
       
   868 |
       
   869 "                                     # "
       
   870 [^\\\x80-\xff\n\015"] *                            #   normal
       
   871 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
   872 "                                     #        "
       
   873 ) # "special" comment or quoted string
       
   874 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] *            #  more "normal"
       
   875 )*
       
   876 <
       
   877 [\040\t]*                    # Nab whitespace.
       
   878 (?:
       
   879 \(                              #  (
       
   880 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   881 (?:                                 #       (
       
   882 (?:  \\ [^\x80-\xff]  |
       
   883 \(                            #  (
       
   884 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   885 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   886 \)                           #                       )
       
   887 )    #         special
       
   888 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   889 )*                                  #            )*
       
   890 \)                             #                )
       
   891 [\040\t]* )*    # If comment found, allow more spaces.
       
   892 # <
       
   893 (?:
       
   894 @
       
   895 [\040\t]*                    # Nab whitespace.
       
   896 (?:
       
   897 \(                              #  (
       
   898 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   899 (?:                                 #       (
       
   900 (?:  \\ [^\x80-\xff]  |
       
   901 \(                            #  (
       
   902 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   903 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   904 \)                           #                       )
       
   905 )    #         special
       
   906 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   907 )*                                  #            )*
       
   908 \)                             #                )
       
   909 [\040\t]* )*    # If comment found, allow more spaces.
       
   910 (?:
       
   911 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   912 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   913 |
       
   914 \[                            # [
       
   915 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
   916 \]                           #           ]
       
   917 )
       
   918 [\040\t]*                    # Nab whitespace.
       
   919 (?:
       
   920 \(                              #  (
       
   921 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   922 (?:                                 #       (
       
   923 (?:  \\ [^\x80-\xff]  |
       
   924 \(                            #  (
       
   925 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   926 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   927 \)                           #                       )
       
   928 )    #         special
       
   929 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   930 )*                                  #            )*
       
   931 \)                             #                )
       
   932 [\040\t]* )*    # If comment found, allow more spaces.
       
   933 # optional trailing comments
       
   934 (?:
       
   935 \.
       
   936 [\040\t]*                    # Nab whitespace.
       
   937 (?:
       
   938 \(                              #  (
       
   939 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   940 (?:                                 #       (
       
   941 (?:  \\ [^\x80-\xff]  |
       
   942 \(                            #  (
       
   943 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   944 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   945 \)                           #                       )
       
   946 )    #         special
       
   947 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   948 )*                                  #            )*
       
   949 \)                             #                )
       
   950 [\040\t]* )*    # If comment found, allow more spaces.
       
   951 (?:
       
   952 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
   953 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
   954 |
       
   955 \[                            # [
       
   956 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
   957 \]                           #           ]
       
   958 )
       
   959 [\040\t]*                    # Nab whitespace.
       
   960 (?:
       
   961 \(                              #  (
       
   962 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   963 (?:                                 #       (
       
   964 (?:  \\ [^\x80-\xff]  |
       
   965 \(                            #  (
       
   966 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   967 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   968 \)                           #                       )
       
   969 )    #         special
       
   970 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   971 )*                                  #            )*
       
   972 \)                             #                )
       
   973 [\040\t]* )*    # If comment found, allow more spaces.
       
   974 # optional trailing comments
       
   975 )*
       
   976 (?: ,
       
   977 [\040\t]*                    # Nab whitespace.
       
   978 (?:
       
   979 \(                              #  (
       
   980 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   981 (?:                                 #       (
       
   982 (?:  \\ [^\x80-\xff]  |
       
   983 \(                            #  (
       
   984 [^\\\x80-\xff\n\015()] *                            #     normal*
       
   985 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
   986 \)                           #                       )
       
   987 )    #         special
       
   988 [^\\\x80-\xff\n\015()] *                         #         normal*
       
   989 )*                                  #            )*
       
   990 \)                             #                )
       
   991 [\040\t]* )*    # If comment found, allow more spaces.
       
   992 @
       
   993 [\040\t]*                    # Nab whitespace.
       
   994 (?:
       
   995 \(                              #  (
       
   996 [^\\\x80-\xff\n\015()] *                             #     normal*
       
   997 (?:                                 #       (
       
   998 (?:  \\ [^\x80-\xff]  |
       
   999 \(                            #  (
       
  1000 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1001 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1002 \)                           #                       )
       
  1003 )    #         special
       
  1004 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1005 )*                                  #            )*
       
  1006 \)                             #                )
       
  1007 [\040\t]* )*    # If comment found, allow more spaces.
       
  1008 (?:
       
  1009 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1010 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1011 |
       
  1012 \[                            # [
       
  1013 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1014 \]                           #           ]
       
  1015 )
       
  1016 [\040\t]*                    # Nab whitespace.
       
  1017 (?:
       
  1018 \(                              #  (
       
  1019 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1020 (?:                                 #       (
       
  1021 (?:  \\ [^\x80-\xff]  |
       
  1022 \(                            #  (
       
  1023 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1024 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1025 \)                           #                       )
       
  1026 )    #         special
       
  1027 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1028 )*                                  #            )*
       
  1029 \)                             #                )
       
  1030 [\040\t]* )*    # If comment found, allow more spaces.
       
  1031 # optional trailing comments
       
  1032 (?:
       
  1033 \.
       
  1034 [\040\t]*                    # Nab whitespace.
       
  1035 (?:
       
  1036 \(                              #  (
       
  1037 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1038 (?:                                 #       (
       
  1039 (?:  \\ [^\x80-\xff]  |
       
  1040 \(                            #  (
       
  1041 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1042 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1043 \)                           #                       )
       
  1044 )    #         special
       
  1045 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1046 )*                                  #            )*
       
  1047 \)                             #                )
       
  1048 [\040\t]* )*    # If comment found, allow more spaces.
       
  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 \[                            # [
       
  1054 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1055 \]                           #           ]
       
  1056 )
       
  1057 [\040\t]*                    # Nab whitespace.
       
  1058 (?:
       
  1059 \(                              #  (
       
  1060 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1061 (?:                                 #       (
       
  1062 (?:  \\ [^\x80-\xff]  |
       
  1063 \(                            #  (
       
  1064 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1065 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1066 \)                           #                       )
       
  1067 )    #         special
       
  1068 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1069 )*                                  #            )*
       
  1070 \)                             #                )
       
  1071 [\040\t]* )*    # If comment found, allow more spaces.
       
  1072 # optional trailing comments
       
  1073 )*
       
  1074 )*  # additional domains
       
  1075 :
       
  1076 [\040\t]*                    # Nab whitespace.
       
  1077 (?:
       
  1078 \(                              #  (
       
  1079 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1080 (?:                                 #       (
       
  1081 (?:  \\ [^\x80-\xff]  |
       
  1082 \(                            #  (
       
  1083 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1084 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1085 \)                           #                       )
       
  1086 )    #         special
       
  1087 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1088 )*                                  #            )*
       
  1089 \)                             #                )
       
  1090 [\040\t]* )*    # If comment found, allow more spaces.
       
  1091 # optional trailing comments
       
  1092 )?     #       optional route
       
  1093 (?:
       
  1094 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1095 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1096 # Atom
       
  1097 |                       #  or
       
  1098 "                                     # "
       
  1099 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1100 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1101 "                                     #        "
       
  1102 # Quoted string
       
  1103 )
       
  1104 [\040\t]*                    # Nab whitespace.
       
  1105 (?:
       
  1106 \(                              #  (
       
  1107 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1108 (?:                                 #       (
       
  1109 (?:  \\ [^\x80-\xff]  |
       
  1110 \(                            #  (
       
  1111 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1112 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1113 \)                           #                       )
       
  1114 )    #         special
       
  1115 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1116 )*                                  #            )*
       
  1117 \)                             #                )
       
  1118 [\040\t]* )*    # If comment found, allow more spaces.
       
  1119 (?:
       
  1120 \.
       
  1121 [\040\t]*                    # Nab whitespace.
       
  1122 (?:
       
  1123 \(                              #  (
       
  1124 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1125 (?:                                 #       (
       
  1126 (?:  \\ [^\x80-\xff]  |
       
  1127 \(                            #  (
       
  1128 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1129 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1130 \)                           #                       )
       
  1131 )    #         special
       
  1132 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1133 )*                                  #            )*
       
  1134 \)                             #                )
       
  1135 [\040\t]* )*    # If comment found, allow more spaces.
       
  1136 (?:
       
  1137 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1138 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1139 # Atom
       
  1140 |                       #  or
       
  1141 "                                     # "
       
  1142 [^\\\x80-\xff\n\015"] *                            #   normal
       
  1143 (?:  \\ [^\x80-\xff]  [^\\\x80-\xff\n\015"] * )*        #   ( special normal* )*
       
  1144 "                                     #        "
       
  1145 # Quoted string
       
  1146 )
       
  1147 [\040\t]*                    # Nab whitespace.
       
  1148 (?:
       
  1149 \(                              #  (
       
  1150 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1151 (?:                                 #       (
       
  1152 (?:  \\ [^\x80-\xff]  |
       
  1153 \(                            #  (
       
  1154 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1155 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1156 \)                           #                       )
       
  1157 )    #         special
       
  1158 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1159 )*                                  #            )*
       
  1160 \)                             #                )
       
  1161 [\040\t]* )*    # If comment found, allow more spaces.
       
  1162 # additional words
       
  1163 )*
       
  1164 @
       
  1165 [\040\t]*                    # Nab whitespace.
       
  1166 (?:
       
  1167 \(                              #  (
       
  1168 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1169 (?:                                 #       (
       
  1170 (?:  \\ [^\x80-\xff]  |
       
  1171 \(                            #  (
       
  1172 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1173 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1174 \)                           #                       )
       
  1175 )    #         special
       
  1176 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1177 )*                                  #            )*
       
  1178 \)                             #                )
       
  1179 [\040\t]* )*    # If comment found, allow more spaces.
       
  1180 (?:
       
  1181 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1182 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1183 |
       
  1184 \[                            # [
       
  1185 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1186 \]                           #           ]
       
  1187 )
       
  1188 [\040\t]*                    # Nab whitespace.
       
  1189 (?:
       
  1190 \(                              #  (
       
  1191 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1192 (?:                                 #       (
       
  1193 (?:  \\ [^\x80-\xff]  |
       
  1194 \(                            #  (
       
  1195 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1196 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1197 \)                           #                       )
       
  1198 )    #         special
       
  1199 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1200 )*                                  #            )*
       
  1201 \)                             #                )
       
  1202 [\040\t]* )*    # If comment found, allow more spaces.
       
  1203 # optional trailing comments
       
  1204 (?:
       
  1205 \.
       
  1206 [\040\t]*                    # Nab whitespace.
       
  1207 (?:
       
  1208 \(                              #  (
       
  1209 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1210 (?:                                 #       (
       
  1211 (?:  \\ [^\x80-\xff]  |
       
  1212 \(                            #  (
       
  1213 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1214 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1215 \)                           #                       )
       
  1216 )    #         special
       
  1217 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1218 )*                                  #            )*
       
  1219 \)                             #                )
       
  1220 [\040\t]* )*    # If comment found, allow more spaces.
       
  1221 (?:
       
  1222 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
       
  1223 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
       
  1224 |
       
  1225 \[                            # [
       
  1226 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*     #    stuff
       
  1227 \]                           #           ]
       
  1228 )
       
  1229 [\040\t]*                    # Nab whitespace.
       
  1230 (?:
       
  1231 \(                              #  (
       
  1232 [^\\\x80-\xff\n\015()] *                             #     normal*
       
  1233 (?:                                 #       (
       
  1234 (?:  \\ [^\x80-\xff]  |
       
  1235 \(                            #  (
       
  1236 [^\\\x80-\xff\n\015()] *                            #     normal*
       
  1237 (?:  \\ [^\x80-\xff]   [^\\\x80-\xff\n\015()] * )*        #     (special normal*)*
       
  1238 \)                           #                       )
       
  1239 )    #         special
       
  1240 [^\\\x80-\xff\n\015()] *                         #         normal*
       
  1241 )*                                  #            )*
       
  1242 \)                             #                )
       
  1243 [\040\t]* )*    # If comment found, allow more spaces.
       
  1244 # optional trailing comments
       
  1245 )*
       
  1246 #       address spec
       
  1247 >                    #                 >
       
  1248 # name and address
       
  1249 )
       
  1250 /x
       
  1251     Alan Other <user\@dom.ain>
       
  1252     <user\@dom.ain>
       
  1253     user\@dom.ain
       
  1254     \"A. Other\" <user.1234\@dom.ain> (a comment)
       
  1255     A. Other <user.1234\@dom.ain> (a comment)
       
  1256     \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
       
  1257     A missing angle <user\@some.where
       
  1258     *** Failers
       
  1259     The quick brown fox
       
  1260 
       
  1261 /abc\0def\00pqr\000xyz\0000AB/
       
  1262     abc\0def\00pqr\000xyz\0000AB
       
  1263     abc456 abc\0def\00pqr\000xyz\0000ABCDE
       
  1264 
       
  1265 /abc\x0def\x00pqr\x000xyz\x0000AB/
       
  1266     abc\x0def\x00pqr\x000xyz\x0000AB
       
  1267     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
       
  1268 
       
  1269 /^[\000-\037]/
       
  1270     \0A
       
  1271     \01B
       
  1272     \037C
       
  1273 
       
  1274 /\0*/
       
  1275     \0\0\0\0
       
  1276 
       
  1277 /A\x0{2,3}Z/
       
  1278     The A\x0\x0Z
       
  1279     An A\0\x0\0Z
       
  1280     *** Failers
       
  1281     A\0Z
       
  1282     A\0\x0\0\x0Z
       
  1283 
       
  1284 /^(cow|)\1(bell)/
       
  1285     cowcowbell
       
  1286     bell
       
  1287     *** Failers
       
  1288     cowbell
       
  1289 
       
  1290 /^\s/
       
  1291     \040abc
       
  1292     \x0cabc
       
  1293     \nabc
       
  1294     \rabc
       
  1295     \tabc
       
  1296     *** Failers
       
  1297     abc
       
  1298 
       
  1299 /^a	b
       
  1300       c/x
       
  1301     abc
       
  1302 
       
  1303 /^(a|)\1*b/
       
  1304     ab
       
  1305     aaaab
       
  1306     b
       
  1307     *** Failers
       
  1308     acb
       
  1309 
       
  1310 /^(a|)\1+b/
       
  1311     aab
       
  1312     aaaab
       
  1313     b
       
  1314     *** Failers
       
  1315     ab
       
  1316 
       
  1317 /^(a|)\1?b/
       
  1318     ab
       
  1319     aab
       
  1320     b
       
  1321     *** Failers
       
  1322     acb
       
  1323 
       
  1324 /^(a|)\1{2}b/
       
  1325     aaab
       
  1326     b
       
  1327     *** Failers
       
  1328     ab
       
  1329     aab
       
  1330     aaaab
       
  1331 
       
  1332 /^(a|)\1{2,3}b/
       
  1333     aaab
       
  1334     aaaab
       
  1335     b
       
  1336     *** Failers
       
  1337     ab
       
  1338     aab
       
  1339     aaaaab
       
  1340 
       
  1341 /ab{1,3}bc/
       
  1342     abbbbc
       
  1343     abbbc
       
  1344     abbc
       
  1345     *** Failers
       
  1346     abc
       
  1347     abbbbbc
       
  1348 
       
  1349 /([^.]*)\.([^:]*):[T ]+(.*)/
       
  1350     track1.title:TBlah blah blah
       
  1351 
       
  1352 /([^.]*)\.([^:]*):[T ]+(.*)/i
       
  1353     track1.title:TBlah blah blah
       
  1354 
       
  1355 /([^.]*)\.([^:]*):[t ]+(.*)/i
       
  1356     track1.title:TBlah blah blah
       
  1357 
       
  1358 /^[W-c]+$/
       
  1359     WXY_^abc
       
  1360     *** Failers
       
  1361     wxy
       
  1362 
       
  1363 /^[W-c]+$/i
       
  1364     WXY_^abc
       
  1365     wxy_^ABC
       
  1366 
       
  1367 /^[\x3f-\x5F]+$/i
       
  1368     WXY_^abc
       
  1369     wxy_^ABC
       
  1370 
       
  1371 /^abc$/m
       
  1372     abc
       
  1373     qqq\nabc
       
  1374     abc\nzzz
       
  1375     qqq\nabc\nzzz
       
  1376 
       
  1377 /^abc$/
       
  1378     abc
       
  1379     *** Failers
       
  1380     qqq\nabc
       
  1381     abc\nzzz
       
  1382     qqq\nabc\nzzz
       
  1383 
       
  1384 /\Aabc\Z/m
       
  1385     abc
       
  1386     abc\n 
       
  1387     *** Failers
       
  1388     qqq\nabc
       
  1389     abc\nzzz
       
  1390     qqq\nabc\nzzz
       
  1391     
       
  1392 /\A(.)*\Z/s
       
  1393     abc\ndef
       
  1394 
       
  1395 /\A(.)*\Z/m
       
  1396     *** Failers
       
  1397     abc\ndef
       
  1398 
       
  1399 /(?:b)|(?::+)/
       
  1400     b::c
       
  1401     c::b
       
  1402 
       
  1403 /[-az]+/
       
  1404     az-
       
  1405     *** Failers
       
  1406     b
       
  1407 
       
  1408 /[az-]+/
       
  1409     za-
       
  1410     *** Failers
       
  1411     b
       
  1412 
       
  1413 /[a\-z]+/
       
  1414     a-z
       
  1415     *** Failers
       
  1416     b
       
  1417 
       
  1418 /[a-z]+/
       
  1419     abcdxyz
       
  1420 
       
  1421 /[\d-]+/
       
  1422     12-34
       
  1423     *** Failers
       
  1424     aaa
       
  1425 
       
  1426 /[\d-z]+/
       
  1427     12-34z
       
  1428     *** Failers
       
  1429     aaa
       
  1430 
       
  1431 /\x5c/
       
  1432     \\
       
  1433 
       
  1434 /\x20Z/
       
  1435     the Zoo
       
  1436     *** Failers
       
  1437     Zulu
       
  1438 
       
  1439 /(abc)\1/i
       
  1440     abcabc
       
  1441     ABCabc
       
  1442     abcABC
       
  1443 
       
  1444 /ab{3cd/
       
  1445     ab{3cd
       
  1446 
       
  1447 /ab{3,cd/
       
  1448     ab{3,cd
       
  1449 
       
  1450 /ab{3,4a}cd/
       
  1451     ab{3,4a}cd
       
  1452 
       
  1453 /{4,5a}bc/
       
  1454     {4,5a}bc
       
  1455 
       
  1456 /abc$/
       
  1457     abc
       
  1458     abc\n
       
  1459     *** Failers
       
  1460     abc\ndef
       
  1461 
       
  1462 /(abc)\123/
       
  1463     abc\x53
       
  1464 
       
  1465 /(abc)\223/
       
  1466     abc\x93
       
  1467 
       
  1468 /(abc)\323/
       
  1469     abc\xd3
       
  1470 
       
  1471 /(abc)\100/
       
  1472     abc\x40
       
  1473     abc\100
       
  1474 
       
  1475 /(abc)\1000/
       
  1476     abc\x400
       
  1477     abc\x40\x30
       
  1478     abc\1000
       
  1479     abc\100\x30
       
  1480     abc\100\060
       
  1481     abc\100\60
       
  1482 
       
  1483 /abc\81/
       
  1484     abc\081
       
  1485     abc\0\x38\x31
       
  1486 
       
  1487 /abc\91/
       
  1488     abc\091
       
  1489     abc\0\x39\x31
       
  1490 
       
  1491 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
       
  1492     abcdefghijkllS
       
  1493 
       
  1494 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
       
  1495     abcdefghijk\12S
       
  1496 
       
  1497 /ab\idef/
       
  1498     abidef
       
  1499 
       
  1500 /a{0}bc/
       
  1501     bc
       
  1502 
       
  1503 /(a|(bc)){0,0}?xyz/
       
  1504     xyz
       
  1505 
       
  1506 /abc[\10]de/
       
  1507     abc\010de
       
  1508 
       
  1509 /abc[\1]de/
       
  1510     abc\1de
       
  1511 
       
  1512 /(abc)[\1]de/
       
  1513     abc\1de
       
  1514 
       
  1515 /(?s)a.b/
       
  1516     a\nb
       
  1517 
       
  1518 /^([^a])([^\b])([^c]*)([^d]{3,4})/
       
  1519     baNOTccccd
       
  1520     baNOTcccd
       
  1521     baNOTccd
       
  1522     bacccd
       
  1523     *** Failers
       
  1524     anything
       
  1525     b\bc   
       
  1526     baccd
       
  1527 
       
  1528 /[^a]/
       
  1529     Abc
       
  1530   
       
  1531 /[^a]/i
       
  1532     Abc 
       
  1533 
       
  1534 /[^a]+/
       
  1535     AAAaAbc
       
  1536   
       
  1537 /[^a]+/i
       
  1538     AAAaAbc 
       
  1539 
       
  1540 /[^a]+/
       
  1541     bbb\nccc
       
  1542    
       
  1543 /[^k]$/
       
  1544     abc
       
  1545     *** Failers
       
  1546     abk   
       
  1547    
       
  1548 /[^k]{2,3}$/
       
  1549     abc
       
  1550     kbc
       
  1551     kabc 
       
  1552     *** Failers
       
  1553     abk
       
  1554     akb
       
  1555     akk 
       
  1556 
       
  1557 /^\d{8,}\@.+[^k]$/
       
  1558     12345678\@a.b.c.d
       
  1559     123456789\@x.y.z
       
  1560     *** Failers
       
  1561     12345678\@x.y.uk
       
  1562     1234567\@a.b.c.d       
       
  1563 
       
  1564 /(a)\1{8,}/
       
  1565     aaaaaaaaa
       
  1566     aaaaaaaaaa
       
  1567     *** Failers
       
  1568     aaaaaaa   
       
  1569 
       
  1570 /[^a]/
       
  1571     aaaabcd
       
  1572     aaAabcd 
       
  1573 
       
  1574 /[^a]/i
       
  1575     aaaabcd
       
  1576     aaAabcd 
       
  1577 
       
  1578 /[^az]/
       
  1579     aaaabcd
       
  1580     aaAabcd 
       
  1581 
       
  1582 /[^az]/i
       
  1583     aaaabcd
       
  1584     aaAabcd 
       
  1585 
       
  1586 /\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/
       
  1587  \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
       
  1588 
       
  1589 /P[^*]TAIRE[^*]{1,6}?LL/
       
  1590     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
       
  1591 
       
  1592 /P[^*]TAIRE[^*]{1,}?LL/
       
  1593     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
       
  1594 
       
  1595 /(\.\d\d[1-9]?)\d+/
       
  1596     1.230003938
       
  1597     1.875000282   
       
  1598     1.235  
       
  1599                   
       
  1600 /(\.\d\d((?=0)|\d(?=\d)))/
       
  1601     1.230003938      
       
  1602     1.875000282
       
  1603     *** Failers 
       
  1604     1.235 
       
  1605     
       
  1606 /a(?)b/
       
  1607     ab 
       
  1608  
       
  1609 /\b(foo)\s+(\w+)/i
       
  1610     Food is on the foo table
       
  1611     
       
  1612 /foo(.*)bar/
       
  1613     The food is under the bar in the barn.
       
  1614     
       
  1615 /foo(.*?)bar/  
       
  1616     The food is under the bar in the barn.
       
  1617 
       
  1618 /(.*)(\d*)/
       
  1619     I have 2 numbers: 53147
       
  1620     
       
  1621 /(.*)(\d+)/
       
  1622     I have 2 numbers: 53147
       
  1623  
       
  1624 /(.*?)(\d*)/
       
  1625     I have 2 numbers: 53147
       
  1626 
       
  1627 /(.*?)(\d+)/
       
  1628     I have 2 numbers: 53147
       
  1629 
       
  1630 /(.*)(\d+)$/
       
  1631     I have 2 numbers: 53147
       
  1632 
       
  1633 /(.*?)(\d+)$/
       
  1634     I have 2 numbers: 53147
       
  1635 
       
  1636 /(.*)\b(\d+)$/
       
  1637     I have 2 numbers: 53147
       
  1638 
       
  1639 /(.*\D)(\d+)$/
       
  1640     I have 2 numbers: 53147
       
  1641 
       
  1642 /^\D*(?!123)/
       
  1643     ABC123
       
  1644      
       
  1645 /^(\D*)(?=\d)(?!123)/
       
  1646     ABC445
       
  1647     *** Failers
       
  1648     ABC123
       
  1649     
       
  1650 /^[W-]46]/
       
  1651     W46]789 
       
  1652     -46]789
       
  1653     *** Failers
       
  1654     Wall
       
  1655     Zebra
       
  1656     42
       
  1657     [abcd] 
       
  1658     ]abcd[
       
  1659        
       
  1660 /^[W-\]46]/
       
  1661     W46]789 
       
  1662     Wall
       
  1663     Zebra
       
  1664     Xylophone  
       
  1665     42
       
  1666     [abcd] 
       
  1667     ]abcd[
       
  1668     \\backslash 
       
  1669     *** Failers
       
  1670     -46]789
       
  1671     well
       
  1672     
       
  1673 /\d\d\/\d\d\/\d\d\d\d/
       
  1674     01/01/2000
       
  1675 
       
  1676 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
       
  1677   word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  1678   word cat dog elephant mussel cow horse canary baboon snake shark
       
  1679 
       
  1680 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
       
  1681   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
       
  1682 
       
  1683 /^(a){0,0}/
       
  1684     bcd
       
  1685     abc
       
  1686     aab     
       
  1687 
       
  1688 /^(a){0,1}/
       
  1689     bcd
       
  1690     abc
       
  1691     aab  
       
  1692 
       
  1693 /^(a){0,2}/
       
  1694     bcd
       
  1695     abc
       
  1696     aab  
       
  1697 
       
  1698 /^(a){0,3}/
       
  1699     bcd
       
  1700     abc
       
  1701     aab
       
  1702     aaa   
       
  1703 
       
  1704 /^(a){0,}/
       
  1705     bcd
       
  1706     abc
       
  1707     aab
       
  1708     aaa
       
  1709     aaaaaaaa    
       
  1710 
       
  1711 /^(a){1,1}/
       
  1712     bcd
       
  1713     abc
       
  1714     aab  
       
  1715 
       
  1716 /^(a){1,2}/
       
  1717     bcd
       
  1718     abc
       
  1719     aab  
       
  1720 
       
  1721 /^(a){1,3}/
       
  1722     bcd
       
  1723     abc
       
  1724     aab
       
  1725     aaa   
       
  1726 
       
  1727 /^(a){1,}/
       
  1728     bcd
       
  1729     abc
       
  1730     aab
       
  1731     aaa
       
  1732     aaaaaaaa    
       
  1733 
       
  1734 /.*\.gif/
       
  1735     borfle\nbib.gif\nno
       
  1736 
       
  1737 /.{0,}\.gif/
       
  1738     borfle\nbib.gif\nno
       
  1739 
       
  1740 /.*\.gif/m
       
  1741     borfle\nbib.gif\nno
       
  1742 
       
  1743 /.*\.gif/s
       
  1744     borfle\nbib.gif\nno
       
  1745 
       
  1746 /.*\.gif/ms
       
  1747     borfle\nbib.gif\nno
       
  1748     
       
  1749 /.*$/
       
  1750     borfle\nbib.gif\nno
       
  1751 
       
  1752 /.*$/m
       
  1753     borfle\nbib.gif\nno
       
  1754 
       
  1755 /.*$/s
       
  1756     borfle\nbib.gif\nno
       
  1757 
       
  1758 /.*$/ms
       
  1759     borfle\nbib.gif\nno
       
  1760     
       
  1761 /.*$/
       
  1762     borfle\nbib.gif\nno\n
       
  1763 
       
  1764 /.*$/m
       
  1765     borfle\nbib.gif\nno\n
       
  1766 
       
  1767 /.*$/s
       
  1768     borfle\nbib.gif\nno\n
       
  1769 
       
  1770 /.*$/ms
       
  1771     borfle\nbib.gif\nno\n
       
  1772     
       
  1773 /(.*X|^B)/
       
  1774     abcde\n1234Xyz
       
  1775     BarFoo 
       
  1776     *** Failers
       
  1777     abcde\nBar  
       
  1778 
       
  1779 /(.*X|^B)/m
       
  1780     abcde\n1234Xyz
       
  1781     BarFoo 
       
  1782     abcde\nBar  
       
  1783 
       
  1784 /(.*X|^B)/s
       
  1785     abcde\n1234Xyz
       
  1786     BarFoo 
       
  1787     *** Failers
       
  1788     abcde\nBar  
       
  1789 
       
  1790 /(.*X|^B)/ms
       
  1791     abcde\n1234Xyz
       
  1792     BarFoo 
       
  1793     abcde\nBar  
       
  1794 
       
  1795 /(?s)(.*X|^B)/
       
  1796     abcde\n1234Xyz
       
  1797     BarFoo 
       
  1798     *** Failers 
       
  1799     abcde\nBar  
       
  1800 
       
  1801 /(?s:.*X|^B)/
       
  1802     abcde\n1234Xyz
       
  1803     BarFoo 
       
  1804     *** Failers 
       
  1805     abcde\nBar  
       
  1806 
       
  1807 /^.*B/
       
  1808     **** Failers
       
  1809     abc\nB
       
  1810      
       
  1811 /(?s)^.*B/
       
  1812     abc\nB
       
  1813 
       
  1814 /(?m)^.*B/
       
  1815     abc\nB
       
  1816      
       
  1817 /(?ms)^.*B/
       
  1818     abc\nB
       
  1819 
       
  1820 /(?ms)^B/
       
  1821     abc\nB
       
  1822 
       
  1823 /(?s)B$/
       
  1824     B\n
       
  1825 
       
  1826 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
       
  1827     123456654321
       
  1828   
       
  1829 /^\d\d\d\d\d\d\d\d\d\d\d\d/
       
  1830     123456654321 
       
  1831 
       
  1832 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
       
  1833     123456654321
       
  1834   
       
  1835 /^[abc]{12}/
       
  1836     abcabcabcabc
       
  1837     
       
  1838 /^[a-c]{12}/
       
  1839     abcabcabcabc
       
  1840     
       
  1841 /^(a|b|c){12}/
       
  1842     abcabcabcabc 
       
  1843 
       
  1844 /^[abcdefghijklmnopqrstuvwxy0123456789]/
       
  1845     n
       
  1846     *** Failers 
       
  1847     z 
       
  1848 
       
  1849 /abcde{0,0}/
       
  1850     abcd
       
  1851     *** Failers
       
  1852     abce  
       
  1853 
       
  1854 /ab[cd]{0,0}e/
       
  1855     abe
       
  1856     *** Failers
       
  1857     abcde 
       
  1858     
       
  1859 /ab(c){0,0}d/
       
  1860     abd
       
  1861     *** Failers
       
  1862     abcd   
       
  1863 
       
  1864 /a(b*)/
       
  1865     a
       
  1866     ab
       
  1867     abbbb
       
  1868     *** Failers
       
  1869     bbbbb    
       
  1870     
       
  1871 /ab\d{0}e/
       
  1872     abe
       
  1873     *** Failers
       
  1874     ab1e   
       
  1875     
       
  1876 /"([^\\"]+|\\.)*"/
       
  1877     the \"quick\" brown fox
       
  1878     \"the \\\"quick\\\" brown fox\" 
       
  1879 
       
  1880 /.*?/g+
       
  1881     abc
       
  1882   
       
  1883 /\b/g+
       
  1884     abc 
       
  1885 
       
  1886 /\b/+g
       
  1887     abc 
       
  1888 
       
  1889 //g
       
  1890     abc
       
  1891 
       
  1892 /<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
       
  1893   <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>
       
  1894 
       
  1895 /a[^a]b/
       
  1896     acb
       
  1897     a\nb
       
  1898     
       
  1899 /a.b/
       
  1900     acb
       
  1901     *** Failers 
       
  1902     a\nb   
       
  1903     
       
  1904 /a[^a]b/s
       
  1905     acb
       
  1906     a\nb  
       
  1907     
       
  1908 /a.b/s
       
  1909     acb
       
  1910     a\nb  
       
  1911 
       
  1912 /^(b+?|a){1,2}?c/
       
  1913     bac
       
  1914     bbac
       
  1915     bbbac
       
  1916     bbbbac
       
  1917     bbbbbac 
       
  1918 
       
  1919 /^(b+|a){1,2}?c/
       
  1920     bac
       
  1921     bbac
       
  1922     bbbac
       
  1923     bbbbac
       
  1924     bbbbbac 
       
  1925     
       
  1926 /(?!\A)x/m
       
  1927     x\nb\n
       
  1928     a\bx\n  
       
  1929     
       
  1930 /\x0{ab}/
       
  1931     \0{ab} 
       
  1932 
       
  1933 /(A|B)*?CD/
       
  1934     CD 
       
  1935     
       
  1936 /(A|B)*CD/
       
  1937     CD 
       
  1938 
       
  1939 /(AB)*?\1/
       
  1940     ABABAB
       
  1941 
       
  1942 /(AB)*\1/
       
  1943     ABABAB
       
  1944     
       
  1945 /(?<!bar)foo/
       
  1946     foo
       
  1947     catfood
       
  1948     arfootle
       
  1949     rfoosh
       
  1950     *** Failers
       
  1951     barfoo
       
  1952     towbarfoo
       
  1953 
       
  1954 /\w{3}(?<!bar)foo/
       
  1955     catfood
       
  1956     *** Failers
       
  1957     foo
       
  1958     barfoo
       
  1959     towbarfoo
       
  1960 
       
  1961 /(?<=(foo)a)bar/
       
  1962     fooabar
       
  1963     *** Failers
       
  1964     bar
       
  1965     foobbar
       
  1966       
       
  1967 /\Aabc\z/m
       
  1968     abc
       
  1969     *** Failers
       
  1970     abc\n   
       
  1971     qqq\nabc
       
  1972     abc\nzzz
       
  1973     qqq\nabc\nzzz
       
  1974 
       
  1975 "(?>.*/)foo"
       
  1976     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
       
  1977 
       
  1978 "(?>.*/)foo"
       
  1979     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
       
  1980 
       
  1981 /(?>(\.\d\d[1-9]?))\d+/
       
  1982     1.230003938
       
  1983     1.875000282
       
  1984     *** Failers 
       
  1985     1.235 
       
  1986 
       
  1987 /^((?>\w+)|(?>\s+))*$/
       
  1988     now is the time for all good men to come to the aid of the party
       
  1989     *** Failers
       
  1990     this is not a line with only words and spaces!
       
  1991     
       
  1992 /(\d+)(\w)/
       
  1993     12345a
       
  1994     12345+ 
       
  1995 
       
  1996 /((?>\d+))(\w)/
       
  1997     12345a
       
  1998     *** Failers
       
  1999     12345+ 
       
  2000 
       
  2001 /(?>a+)b/
       
  2002     aaab
       
  2003 
       
  2004 /((?>a+)b)/
       
  2005     aaab
       
  2006 
       
  2007 /(?>(a+))b/
       
  2008     aaab
       
  2009 
       
  2010 /(?>b)+/
       
  2011     aaabbbccc
       
  2012 
       
  2013 /(?>a+|b+|c+)*c/
       
  2014     aaabbbbccccd
       
  2015 
       
  2016 /((?>[^()]+)|\([^()]*\))+/
       
  2017     ((abc(ade)ufh()()x
       
  2018     
       
  2019 /\(((?>[^()]+)|\([^()]+\))+\)/ 
       
  2020     (abc)
       
  2021     (abc(def)xyz)
       
  2022     *** Failers
       
  2023     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
       
  2024 
       
  2025 /a(?-i)b/i
       
  2026     ab
       
  2027     Ab
       
  2028     *** Failers 
       
  2029     aB
       
  2030     AB
       
  2031         
       
  2032 /(a (?x)b c)d e/
       
  2033     a bcd e
       
  2034     *** Failers
       
  2035     a b cd e
       
  2036     abcd e   
       
  2037     a bcde 
       
  2038  
       
  2039 /(a b(?x)c d (?-x)e f)/
       
  2040     a bcde f
       
  2041     *** Failers
       
  2042     abcdef  
       
  2043 
       
  2044 /(a(?i)b)c/
       
  2045     abc
       
  2046     aBc
       
  2047     *** Failers
       
  2048     abC
       
  2049     aBC  
       
  2050     Abc
       
  2051     ABc
       
  2052     ABC
       
  2053     AbC
       
  2054     
       
  2055 /a(?i:b)c/
       
  2056     abc
       
  2057     aBc
       
  2058     *** Failers 
       
  2059     ABC
       
  2060     abC
       
  2061     aBC
       
  2062     
       
  2063 /a(?i:b)*c/
       
  2064     aBc
       
  2065     aBBc
       
  2066     *** Failers 
       
  2067     aBC
       
  2068     aBBC
       
  2069     
       
  2070 /a(?=b(?i)c)\w\wd/
       
  2071     abcd
       
  2072     abCd
       
  2073     *** Failers
       
  2074     aBCd
       
  2075     abcD     
       
  2076     
       
  2077 /(?s-i:more.*than).*million/i
       
  2078     more than million
       
  2079     more than MILLION
       
  2080     more \n than Million 
       
  2081     *** Failers
       
  2082     MORE THAN MILLION    
       
  2083     more \n than \n million 
       
  2084 
       
  2085 /(?:(?s-i)more.*than).*million/i
       
  2086     more than million
       
  2087     more than MILLION
       
  2088     more \n than Million 
       
  2089     *** Failers
       
  2090     MORE THAN MILLION    
       
  2091     more \n than \n million 
       
  2092     
       
  2093 /(?>a(?i)b+)+c/ 
       
  2094     abc
       
  2095     aBbc
       
  2096     aBBc 
       
  2097     *** Failers
       
  2098     Abc
       
  2099     abAb    
       
  2100     abbC 
       
  2101     
       
  2102 /(?=a(?i)b)\w\wc/
       
  2103     abc
       
  2104     aBc
       
  2105     *** Failers
       
  2106     Ab 
       
  2107     abC
       
  2108     aBC     
       
  2109     
       
  2110 /(?<=a(?i)b)(\w\w)c/
       
  2111     abxxc
       
  2112     aBxxc
       
  2113     *** Failers
       
  2114     Abxxc
       
  2115     ABxxc
       
  2116     abxxC      
       
  2117 
       
  2118 /(?:(a)|b)(?(1)A|B)/
       
  2119     aA
       
  2120     bB
       
  2121     *** Failers
       
  2122     aB
       
  2123     bA    
       
  2124 
       
  2125 /^(a)?(?(1)a|b)+$/
       
  2126     aa
       
  2127     b
       
  2128     bb  
       
  2129     *** Failers
       
  2130     ab   
       
  2131 
       
  2132 /^(?(?=abc)\w{3}:|\d\d)$/
       
  2133     abc:
       
  2134     12
       
  2135     *** Failers
       
  2136     123
       
  2137     xyz    
       
  2138 
       
  2139 /^(?(?!abc)\d\d|\w{3}:)$/
       
  2140     abc:
       
  2141     12
       
  2142     *** Failers
       
  2143     123
       
  2144     xyz    
       
  2145     
       
  2146 /(?(?<=foo)bar|cat)/
       
  2147     foobar
       
  2148     cat
       
  2149     fcat
       
  2150     focat   
       
  2151     *** Failers
       
  2152     foocat  
       
  2153 
       
  2154 /(?(?<!foo)cat|bar)/
       
  2155     foobar
       
  2156     cat
       
  2157     fcat
       
  2158     focat   
       
  2159     *** Failers
       
  2160     foocat  
       
  2161 
       
  2162 /( \( )? [^()]+ (?(1) \) |) /x
       
  2163     abcd
       
  2164     (abcd)
       
  2165     the quick (abcd) fox
       
  2166     (abcd   
       
  2167 
       
  2168 /( \( )? [^()]+ (?(1) \) ) /x
       
  2169     abcd
       
  2170     (abcd)
       
  2171     the quick (abcd) fox
       
  2172     (abcd   
       
  2173 
       
  2174 /^(?(2)a|(1)(2))+$/
       
  2175     12
       
  2176     12a
       
  2177     12aa
       
  2178     *** Failers
       
  2179     1234    
       
  2180 
       
  2181 /((?i)blah)\s+\1/
       
  2182     blah blah
       
  2183     BLAH BLAH
       
  2184     Blah Blah
       
  2185     blaH blaH
       
  2186     *** Failers
       
  2187     blah BLAH
       
  2188     Blah blah      
       
  2189     blaH blah 
       
  2190 
       
  2191 /((?i)blah)\s+(?i:\1)/
       
  2192     blah blah
       
  2193     BLAH BLAH
       
  2194     Blah Blah
       
  2195     blaH blaH
       
  2196     blah BLAH
       
  2197     Blah blah      
       
  2198     blaH blah 
       
  2199 
       
  2200 /(?>a*)*/
       
  2201     a
       
  2202     aa
       
  2203     aaaa
       
  2204     
       
  2205 /(abc|)+/
       
  2206     abc
       
  2207     abcabc
       
  2208     abcabcabc
       
  2209     xyz      
       
  2210 
       
  2211 /([a]*)*/
       
  2212     a
       
  2213     aaaaa 
       
  2214  
       
  2215 /([ab]*)*/
       
  2216     a
       
  2217     b
       
  2218     ababab
       
  2219     aaaabcde
       
  2220     bbbb    
       
  2221  
       
  2222 /([^a]*)*/
       
  2223     b
       
  2224     bbbb
       
  2225     aaa   
       
  2226  
       
  2227 /([^ab]*)*/
       
  2228     cccc
       
  2229     abab  
       
  2230  
       
  2231 /([a]*?)*/
       
  2232     a
       
  2233     aaaa 
       
  2234  
       
  2235 /([ab]*?)*/
       
  2236     a
       
  2237     b
       
  2238     abab
       
  2239     baba   
       
  2240  
       
  2241 /([^a]*?)*/
       
  2242     b
       
  2243     bbbb
       
  2244     aaa   
       
  2245  
       
  2246 /([^ab]*?)*/
       
  2247     c
       
  2248     cccc
       
  2249     baba   
       
  2250  
       
  2251 /(?>a*)*/
       
  2252     a
       
  2253     aaabcde 
       
  2254  
       
  2255 /((?>a*))*/
       
  2256     aaaaa
       
  2257     aabbaa 
       
  2258  
       
  2259 /((?>a*?))*/
       
  2260     aaaaa
       
  2261     aabbaa 
       
  2262 
       
  2263 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
       
  2264     12-sep-98
       
  2265     12-09-98
       
  2266     *** Failers
       
  2267     sep-12-98
       
  2268         
       
  2269 /(?<=(foo))bar\1/
       
  2270     foobarfoo
       
  2271     foobarfootling 
       
  2272     *** Failers
       
  2273     foobar
       
  2274     barfoo   
       
  2275 
       
  2276 /(?i:saturday|sunday)/
       
  2277     saturday
       
  2278     sunday
       
  2279     Saturday
       
  2280     Sunday
       
  2281     SATURDAY
       
  2282     SUNDAY
       
  2283     SunDay
       
  2284     
       
  2285 /(a(?i)bc|BB)x/
       
  2286     abcx
       
  2287     aBCx
       
  2288     bbx
       
  2289     BBx
       
  2290     *** Failers
       
  2291     abcX
       
  2292     aBCX
       
  2293     bbX
       
  2294     BBX               
       
  2295 
       
  2296 /^([ab](?i)[cd]|[ef])/
       
  2297     ac
       
  2298     aC
       
  2299     bD
       
  2300     elephant
       
  2301     Europe 
       
  2302     frog
       
  2303     France
       
  2304     *** Failers
       
  2305     Africa     
       
  2306 
       
  2307 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
       
  2308     ab
       
  2309     aBd
       
  2310     xy
       
  2311     xY
       
  2312     zebra
       
  2313     Zambesi
       
  2314     *** Failers
       
  2315     aCD  
       
  2316     XY  
       
  2317 
       
  2318 /(?<=foo\n)^bar/m
       
  2319     foo\nbar
       
  2320     *** Failers
       
  2321     bar
       
  2322     baz\nbar   
       
  2323 
       
  2324 /(?<=(?<!foo)bar)baz/
       
  2325     barbaz
       
  2326     barbarbaz 
       
  2327     koobarbaz 
       
  2328     *** Failers
       
  2329     baz
       
  2330     foobarbaz 
       
  2331 
       
  2332 /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
       
  2333 /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
       
  2334 /where it does set $1 to aa when matching aaaaaa./
       
  2335 
       
  2336 /^(a\1?){4}$/
       
  2337     a
       
  2338     aa
       
  2339     aaa
       
  2340     aaaa
       
  2341     aaaaa
       
  2342     aaaaaaa
       
  2343     aaaaaaaa
       
  2344     aaaaaaaaa
       
  2345     aaaaaaaaaa
       
  2346     aaaaaaaaaaa
       
  2347     aaaaaaaaaaaa
       
  2348     aaaaaaaaaaaaa
       
  2349     aaaaaaaaaaaaaa
       
  2350     aaaaaaaaaaaaaaa
       
  2351     aaaaaaaaaaaaaaaa               
       
  2352 
       
  2353 /^(a\1?)(a\1?)(a\2?)(a\3?)$/
       
  2354     a
       
  2355     aa
       
  2356     aaa
       
  2357     aaaa
       
  2358     aaaaa
       
  2359     aaaaaa
       
  2360     aaaaaaa
       
  2361     aaaaaaaa
       
  2362     aaaaaaaaa
       
  2363     aaaaaaaaaa
       
  2364     aaaaaaaaaaa
       
  2365     aaaaaaaaaaaa
       
  2366     aaaaaaaaaaaaa
       
  2367     aaaaaaaaaaaaaa
       
  2368     aaaaaaaaaaaaaaa
       
  2369     aaaaaaaaaaaaaaaa               
       
  2370 
       
  2371 /The following tests are taken from the Perl 5.005 test suite; some of them/
       
  2372 /are compatible with 5.004, but I'd rather not have to sort them out./
       
  2373 
       
  2374 /abc/
       
  2375     abc
       
  2376     xabcy
       
  2377     ababc
       
  2378     *** Failers
       
  2379     xbc
       
  2380     axc
       
  2381     abx
       
  2382 
       
  2383 /ab*c/
       
  2384     abc
       
  2385 
       
  2386 /ab*bc/
       
  2387     abc
       
  2388     abbc
       
  2389     abbbbc
       
  2390 
       
  2391 /.{1}/
       
  2392     abbbbc
       
  2393 
       
  2394 /.{3,4}/
       
  2395     abbbbc
       
  2396 
       
  2397 /ab{0,}bc/
       
  2398     abbbbc
       
  2399 
       
  2400 /ab+bc/
       
  2401     abbc
       
  2402     *** Failers
       
  2403     abc
       
  2404     abq
       
  2405 
       
  2406 /ab{1,}bc/
       
  2407 
       
  2408 /ab+bc/
       
  2409     abbbbc
       
  2410 
       
  2411 /ab{1,}bc/
       
  2412     abbbbc
       
  2413 
       
  2414 /ab{1,3}bc/
       
  2415     abbbbc
       
  2416 
       
  2417 /ab{3,4}bc/
       
  2418     abbbbc
       
  2419 
       
  2420 /ab{4,5}bc/
       
  2421     *** Failers
       
  2422     abq
       
  2423     abbbbc
       
  2424 
       
  2425 /ab?bc/
       
  2426     abbc
       
  2427     abc
       
  2428 
       
  2429 /ab{0,1}bc/
       
  2430     abc
       
  2431 
       
  2432 /ab?bc/
       
  2433 
       
  2434 /ab?c/
       
  2435     abc
       
  2436 
       
  2437 /ab{0,1}c/
       
  2438     abc
       
  2439 
       
  2440 /^abc$/
       
  2441     abc
       
  2442     *** Failers
       
  2443     abbbbc
       
  2444     abcc
       
  2445 
       
  2446 /^abc/
       
  2447     abcc
       
  2448 
       
  2449 /^abc$/
       
  2450 
       
  2451 /abc$/
       
  2452     aabc
       
  2453     *** Failers
       
  2454     aabc
       
  2455     aabcd
       
  2456 
       
  2457 /^/
       
  2458     abc
       
  2459 
       
  2460 /$/
       
  2461     abc
       
  2462 
       
  2463 /a.c/
       
  2464     abc
       
  2465     axc
       
  2466 
       
  2467 /a.*c/
       
  2468     axyzc
       
  2469 
       
  2470 /a[bc]d/
       
  2471     abd
       
  2472     *** Failers
       
  2473     axyzd
       
  2474     abc
       
  2475 
       
  2476 /a[b-d]e/
       
  2477     ace
       
  2478 
       
  2479 /a[b-d]/
       
  2480     aac
       
  2481 
       
  2482 /a[-b]/
       
  2483     a-
       
  2484 
       
  2485 /a[b-]/
       
  2486     a-
       
  2487 
       
  2488 /a]/
       
  2489     a]
       
  2490 
       
  2491 /a[]]b/
       
  2492     a]b
       
  2493 
       
  2494 /a[^bc]d/
       
  2495     aed
       
  2496     *** Failers
       
  2497     abd
       
  2498     abd
       
  2499 
       
  2500 /a[^-b]c/
       
  2501     adc
       
  2502 
       
  2503 /a[^]b]c/
       
  2504     adc
       
  2505     *** Failers
       
  2506     a-c
       
  2507     a]c
       
  2508 
       
  2509 /\ba\b/
       
  2510     a-
       
  2511     -a
       
  2512     -a-
       
  2513 
       
  2514 /\by\b/
       
  2515     *** Failers
       
  2516     xy
       
  2517     yz
       
  2518     xyz
       
  2519 
       
  2520 /\Ba\B/
       
  2521     *** Failers
       
  2522     a-
       
  2523     -a
       
  2524     -a-
       
  2525 
       
  2526 /\By\b/
       
  2527     xy
       
  2528 
       
  2529 /\by\B/
       
  2530     yz
       
  2531 
       
  2532 /\By\B/
       
  2533     xyz
       
  2534 
       
  2535 /\w/
       
  2536     a
       
  2537 
       
  2538 /\W/
       
  2539     -
       
  2540     *** Failers
       
  2541     -
       
  2542     a
       
  2543 
       
  2544 /a\sb/
       
  2545     a b
       
  2546 
       
  2547 /a\Sb/
       
  2548     a-b
       
  2549     *** Failers
       
  2550     a-b
       
  2551     a b
       
  2552 
       
  2553 /\d/
       
  2554     1
       
  2555 
       
  2556 /\D/
       
  2557     -
       
  2558     *** Failers
       
  2559     -
       
  2560     1
       
  2561 
       
  2562 /[\w]/
       
  2563     a
       
  2564 
       
  2565 /[\W]/
       
  2566     -
       
  2567     *** Failers
       
  2568     -
       
  2569     a
       
  2570 
       
  2571 /a[\s]b/
       
  2572     a b
       
  2573 
       
  2574 /a[\S]b/
       
  2575     a-b
       
  2576     *** Failers
       
  2577     a-b
       
  2578     a b
       
  2579 
       
  2580 /[\d]/
       
  2581     1
       
  2582 
       
  2583 /[\D]/
       
  2584     -
       
  2585     *** Failers
       
  2586     -
       
  2587     1
       
  2588 
       
  2589 /ab|cd/
       
  2590     abc
       
  2591     abcd
       
  2592 
       
  2593 /()ef/
       
  2594     def
       
  2595 
       
  2596 /$b/
       
  2597 
       
  2598 /a\(b/
       
  2599     a(b
       
  2600 
       
  2601 /a\(*b/
       
  2602     ab
       
  2603     a((b
       
  2604 
       
  2605 /a\\b/
       
  2606     a\b
       
  2607 
       
  2608 /((a))/
       
  2609     abc
       
  2610 
       
  2611 /(a)b(c)/
       
  2612     abc
       
  2613 
       
  2614 /a+b+c/
       
  2615     aabbabc
       
  2616 
       
  2617 /a{1,}b{1,}c/
       
  2618     aabbabc
       
  2619 
       
  2620 /a.+?c/
       
  2621     abcabc
       
  2622 
       
  2623 /(a+|b)*/
       
  2624     ab
       
  2625 
       
  2626 /(a+|b){0,}/
       
  2627     ab
       
  2628 
       
  2629 /(a+|b)+/
       
  2630     ab
       
  2631 
       
  2632 /(a+|b){1,}/
       
  2633     ab
       
  2634 
       
  2635 /(a+|b)?/
       
  2636     ab
       
  2637 
       
  2638 /(a+|b){0,1}/
       
  2639     ab
       
  2640 
       
  2641 /[^ab]*/
       
  2642     cde
       
  2643 
       
  2644 /abc/
       
  2645     *** Failers
       
  2646     b
       
  2647     
       
  2648 
       
  2649 /a*/
       
  2650     
       
  2651 
       
  2652 /([abc])*d/
       
  2653     abbbcd
       
  2654 
       
  2655 /([abc])*bcd/
       
  2656     abcd
       
  2657 
       
  2658 /a|b|c|d|e/
       
  2659     e
       
  2660 
       
  2661 /(a|b|c|d|e)f/
       
  2662     ef
       
  2663 
       
  2664 /abcd*efg/
       
  2665     abcdefg
       
  2666 
       
  2667 /ab*/
       
  2668     xabyabbbz
       
  2669     xayabbbz
       
  2670 
       
  2671 /(ab|cd)e/
       
  2672     abcde
       
  2673 
       
  2674 /[abhgefdc]ij/
       
  2675     hij
       
  2676 
       
  2677 /^(ab|cd)e/
       
  2678 
       
  2679 /(abc|)ef/
       
  2680     abcdef
       
  2681 
       
  2682 /(a|b)c*d/
       
  2683     abcd
       
  2684 
       
  2685 /(ab|ab*)bc/
       
  2686     abc
       
  2687 
       
  2688 /a([bc]*)c*/
       
  2689     abc
       
  2690 
       
  2691 /a([bc]*)(c*d)/
       
  2692     abcd
       
  2693 
       
  2694 /a([bc]+)(c*d)/
       
  2695     abcd
       
  2696 
       
  2697 /a([bc]*)(c+d)/
       
  2698     abcd
       
  2699 
       
  2700 /a[bcd]*dcdcde/
       
  2701     adcdcde
       
  2702 
       
  2703 /a[bcd]+dcdcde/
       
  2704     *** Failers
       
  2705     abcde
       
  2706     adcdcde
       
  2707 
       
  2708 /(ab|a)b*c/
       
  2709     abc
       
  2710 
       
  2711 /((a)(b)c)(d)/
       
  2712     abcd
       
  2713 
       
  2714 /[a-zA-Z_][a-zA-Z0-9_]*/
       
  2715     alpha
       
  2716 
       
  2717 /^a(bc+|b[eh])g|.h$/
       
  2718     abh
       
  2719 
       
  2720 /(bc+d$|ef*g.|h?i(j|k))/
       
  2721     effgz
       
  2722     ij
       
  2723     reffgz
       
  2724     *** Failers
       
  2725     effg
       
  2726     bcdd
       
  2727 
       
  2728 /((((((((((a))))))))))/
       
  2729     a
       
  2730 
       
  2731 /((((((((((a))))))))))\10/
       
  2732     aa
       
  2733 
       
  2734 /(((((((((a)))))))))/
       
  2735     a
       
  2736 
       
  2737 /multiple words of text/
       
  2738     *** Failers
       
  2739     aa
       
  2740     uh-uh
       
  2741 
       
  2742 /multiple words/
       
  2743     multiple words, yeah
       
  2744 
       
  2745 /(.*)c(.*)/
       
  2746     abcde
       
  2747 
       
  2748 /\((.*), (.*)\)/
       
  2749     (a, b)
       
  2750 
       
  2751 /[k]/
       
  2752 
       
  2753 /abcd/
       
  2754     abcd
       
  2755 
       
  2756 /a(bc)d/
       
  2757     abcd
       
  2758 
       
  2759 /a[-]?c/
       
  2760     ac
       
  2761 
       
  2762 /(abc)\1/
       
  2763     abcabc
       
  2764 
       
  2765 /([a-c]*)\1/
       
  2766     abcabc
       
  2767 
       
  2768 /(a)|\1/
       
  2769     a
       
  2770     *** Failers
       
  2771     ab
       
  2772     x
       
  2773 
       
  2774 /(([a-c])b*?\2)*/
       
  2775     ababbbcbc
       
  2776 
       
  2777 /(([a-c])b*?\2){3}/
       
  2778     ababbbcbc
       
  2779 
       
  2780 /((\3|b)\2(a)x)+/
       
  2781     aaaxabaxbaaxbbax
       
  2782 
       
  2783 /((\3|b)\2(a)){2,}/
       
  2784     bbaababbabaaaaabbaaaabba
       
  2785 
       
  2786 /abc/i
       
  2787     ABC
       
  2788     XABCY
       
  2789     ABABC
       
  2790     *** Failers
       
  2791     aaxabxbaxbbx
       
  2792     XBC
       
  2793     AXC
       
  2794     ABX
       
  2795 
       
  2796 /ab*c/i
       
  2797     ABC
       
  2798 
       
  2799 /ab*bc/i
       
  2800     ABC
       
  2801     ABBC
       
  2802 
       
  2803 /ab*?bc/i
       
  2804     ABBBBC
       
  2805 
       
  2806 /ab{0,}?bc/i
       
  2807     ABBBBC
       
  2808 
       
  2809 /ab+?bc/i
       
  2810     ABBC
       
  2811 
       
  2812 /ab+bc/i
       
  2813     *** Failers
       
  2814     ABC
       
  2815     ABQ
       
  2816 
       
  2817 /ab{1,}bc/i
       
  2818 
       
  2819 /ab+bc/i
       
  2820     ABBBBC
       
  2821 
       
  2822 /ab{1,}?bc/i
       
  2823     ABBBBC
       
  2824 
       
  2825 /ab{1,3}?bc/i
       
  2826     ABBBBC
       
  2827 
       
  2828 /ab{3,4}?bc/i
       
  2829     ABBBBC
       
  2830 
       
  2831 /ab{4,5}?bc/i
       
  2832     *** Failers
       
  2833     ABQ
       
  2834     ABBBBC
       
  2835 
       
  2836 /ab??bc/i
       
  2837     ABBC
       
  2838     ABC
       
  2839 
       
  2840 /ab{0,1}?bc/i
       
  2841     ABC
       
  2842 
       
  2843 /ab??bc/i
       
  2844 
       
  2845 /ab??c/i
       
  2846     ABC
       
  2847 
       
  2848 /ab{0,1}?c/i
       
  2849     ABC
       
  2850 
       
  2851 /^abc$/i
       
  2852     ABC
       
  2853     *** Failers
       
  2854     ABBBBC
       
  2855     ABCC
       
  2856 
       
  2857 /^abc/i
       
  2858     ABCC
       
  2859 
       
  2860 /^abc$/i
       
  2861 
       
  2862 /abc$/i
       
  2863     AABC
       
  2864 
       
  2865 /^/i
       
  2866     ABC
       
  2867 
       
  2868 /$/i
       
  2869     ABC
       
  2870 
       
  2871 /a.c/i
       
  2872     ABC
       
  2873     AXC
       
  2874 
       
  2875 /a.*?c/i
       
  2876     AXYZC
       
  2877 
       
  2878 /a.*c/i
       
  2879     *** Failers
       
  2880     AABC
       
  2881     AXYZD
       
  2882 
       
  2883 /a[bc]d/i
       
  2884     ABD
       
  2885 
       
  2886 /a[b-d]e/i
       
  2887     ACE
       
  2888     *** Failers
       
  2889     ABC
       
  2890     ABD
       
  2891 
       
  2892 /a[b-d]/i
       
  2893     AAC
       
  2894 
       
  2895 /a[-b]/i
       
  2896     A-
       
  2897 
       
  2898 /a[b-]/i
       
  2899     A-
       
  2900 
       
  2901 /a]/i
       
  2902     A]
       
  2903 
       
  2904 /a[]]b/i
       
  2905     A]B
       
  2906 
       
  2907 /a[^bc]d/i
       
  2908     AED
       
  2909 
       
  2910 /a[^-b]c/i
       
  2911     ADC
       
  2912     *** Failers
       
  2913     ABD
       
  2914     A-C
       
  2915 
       
  2916 /a[^]b]c/i
       
  2917     ADC
       
  2918 
       
  2919 /ab|cd/i
       
  2920     ABC
       
  2921     ABCD
       
  2922 
       
  2923 /()ef/i
       
  2924     DEF
       
  2925 
       
  2926 /$b/i
       
  2927     *** Failers
       
  2928     A]C
       
  2929     B
       
  2930 
       
  2931 /a\(b/i
       
  2932     A(B
       
  2933 
       
  2934 /a\(*b/i
       
  2935     AB
       
  2936     A((B
       
  2937 
       
  2938 /a\\b/i
       
  2939     A\B
       
  2940 
       
  2941 /((a))/i
       
  2942     ABC
       
  2943 
       
  2944 /(a)b(c)/i
       
  2945     ABC
       
  2946 
       
  2947 /a+b+c/i
       
  2948     AABBABC
       
  2949 
       
  2950 /a{1,}b{1,}c/i
       
  2951     AABBABC
       
  2952 
       
  2953 /a.+?c/i
       
  2954     ABCABC
       
  2955 
       
  2956 /a.*?c/i
       
  2957     ABCABC
       
  2958 
       
  2959 /a.{0,5}?c/i
       
  2960     ABCABC
       
  2961 
       
  2962 /(a+|b)*/i
       
  2963     AB
       
  2964 
       
  2965 /(a+|b){0,}/i
       
  2966     AB
       
  2967 
       
  2968 /(a+|b)+/i
       
  2969     AB
       
  2970 
       
  2971 /(a+|b){1,}/i
       
  2972     AB
       
  2973 
       
  2974 /(a+|b)?/i
       
  2975     AB
       
  2976 
       
  2977 /(a+|b){0,1}/i
       
  2978     AB
       
  2979 
       
  2980 /(a+|b){0,1}?/i
       
  2981     AB
       
  2982 
       
  2983 /[^ab]*/i
       
  2984     CDE
       
  2985 
       
  2986 /abc/i
       
  2987 
       
  2988 /a*/i
       
  2989     
       
  2990 
       
  2991 /([abc])*d/i
       
  2992     ABBBCD
       
  2993 
       
  2994 /([abc])*bcd/i
       
  2995     ABCD
       
  2996 
       
  2997 /a|b|c|d|e/i
       
  2998     E
       
  2999 
       
  3000 /(a|b|c|d|e)f/i
       
  3001     EF
       
  3002 
       
  3003 /abcd*efg/i
       
  3004     ABCDEFG
       
  3005 
       
  3006 /ab*/i
       
  3007     XABYABBBZ
       
  3008     XAYABBBZ
       
  3009 
       
  3010 /(ab|cd)e/i
       
  3011     ABCDE
       
  3012 
       
  3013 /[abhgefdc]ij/i
       
  3014     HIJ
       
  3015 
       
  3016 /^(ab|cd)e/i
       
  3017     ABCDE
       
  3018 
       
  3019 /(abc|)ef/i
       
  3020     ABCDEF
       
  3021 
       
  3022 /(a|b)c*d/i
       
  3023     ABCD
       
  3024 
       
  3025 /(ab|ab*)bc/i
       
  3026     ABC
       
  3027 
       
  3028 /a([bc]*)c*/i
       
  3029     ABC
       
  3030 
       
  3031 /a([bc]*)(c*d)/i
       
  3032     ABCD
       
  3033 
       
  3034 /a([bc]+)(c*d)/i
       
  3035     ABCD
       
  3036 
       
  3037 /a([bc]*)(c+d)/i
       
  3038     ABCD
       
  3039 
       
  3040 /a[bcd]*dcdcde/i
       
  3041     ADCDCDE
       
  3042 
       
  3043 /a[bcd]+dcdcde/i
       
  3044 
       
  3045 /(ab|a)b*c/i
       
  3046     ABC
       
  3047 
       
  3048 /((a)(b)c)(d)/i
       
  3049     ABCD
       
  3050 
       
  3051 /[a-zA-Z_][a-zA-Z0-9_]*/i
       
  3052     ALPHA
       
  3053 
       
  3054 /^a(bc+|b[eh])g|.h$/i
       
  3055     ABH
       
  3056 
       
  3057 /(bc+d$|ef*g.|h?i(j|k))/i
       
  3058     EFFGZ
       
  3059     IJ
       
  3060     REFFGZ
       
  3061     *** Failers
       
  3062     ADCDCDE
       
  3063     EFFG
       
  3064     BCDD
       
  3065 
       
  3066 /((((((((((a))))))))))/i
       
  3067     A
       
  3068 
       
  3069 /((((((((((a))))))))))\10/i
       
  3070     AA
       
  3071 
       
  3072 /(((((((((a)))))))))/i
       
  3073     A
       
  3074 
       
  3075 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
       
  3076     A
       
  3077 
       
  3078 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
       
  3079     C
       
  3080 
       
  3081 /multiple words of text/i
       
  3082     *** Failers
       
  3083     AA
       
  3084     UH-UH
       
  3085 
       
  3086 /multiple words/i
       
  3087     MULTIPLE WORDS, YEAH
       
  3088 
       
  3089 /(.*)c(.*)/i
       
  3090     ABCDE
       
  3091 
       
  3092 /\((.*), (.*)\)/i
       
  3093     (A, B)
       
  3094 
       
  3095 /[k]/i
       
  3096 
       
  3097 /abcd/i
       
  3098     ABCD
       
  3099 
       
  3100 /a(bc)d/i
       
  3101     ABCD
       
  3102 
       
  3103 /a[-]?c/i
       
  3104     AC
       
  3105 
       
  3106 /(abc)\1/i
       
  3107     ABCABC
       
  3108 
       
  3109 /([a-c]*)\1/i
       
  3110     ABCABC
       
  3111 
       
  3112 /a(?!b)./
       
  3113     abad
       
  3114 
       
  3115 /a(?=d)./
       
  3116     abad
       
  3117 
       
  3118 /a(?=c|d)./
       
  3119     abad
       
  3120 
       
  3121 /a(?:b|c|d)(.)/
       
  3122     ace
       
  3123 
       
  3124 /a(?:b|c|d)*(.)/
       
  3125     ace
       
  3126 
       
  3127 /a(?:b|c|d)+?(.)/
       
  3128     ace
       
  3129     acdbcdbe
       
  3130 
       
  3131 /a(?:b|c|d)+(.)/
       
  3132     acdbcdbe
       
  3133 
       
  3134 /a(?:b|c|d){2}(.)/
       
  3135     acdbcdbe
       
  3136 
       
  3137 /a(?:b|c|d){4,5}(.)/
       
  3138     acdbcdbe
       
  3139 
       
  3140 /a(?:b|c|d){4,5}?(.)/
       
  3141     acdbcdbe
       
  3142 
       
  3143 /((foo)|(bar))*/
       
  3144     foobar
       
  3145 
       
  3146 /a(?:b|c|d){6,7}(.)/
       
  3147     acdbcdbe
       
  3148 
       
  3149 /a(?:b|c|d){6,7}?(.)/
       
  3150     acdbcdbe
       
  3151 
       
  3152 /a(?:b|c|d){5,6}(.)/
       
  3153     acdbcdbe
       
  3154 
       
  3155 /a(?:b|c|d){5,6}?(.)/
       
  3156     acdbcdbe
       
  3157 
       
  3158 /a(?:b|c|d){5,7}(.)/
       
  3159     acdbcdbe
       
  3160 
       
  3161 /a(?:b|c|d){5,7}?(.)/
       
  3162     acdbcdbe
       
  3163 
       
  3164 /a(?:b|(c|e){1,2}?|d)+?(.)/
       
  3165     ace
       
  3166 
       
  3167 /^(.+)?B/
       
  3168     AB
       
  3169 
       
  3170 /^([^a-z])|(\^)$/
       
  3171     .
       
  3172 
       
  3173 /^[<>]&/
       
  3174     <&OUT
       
  3175 
       
  3176 /^(a\1?){4}$/
       
  3177     aaaaaaaaaa
       
  3178     *** Failers
       
  3179     AB
       
  3180     aaaaaaaaa
       
  3181     aaaaaaaaaaa
       
  3182 
       
  3183 /^(a(?(1)\1)){4}$/
       
  3184     aaaaaaaaaa
       
  3185     *** Failers
       
  3186     aaaaaaaaa
       
  3187     aaaaaaaaaaa
       
  3188 
       
  3189 /(?:(f)(o)(o)|(b)(a)(r))*/
       
  3190     foobar
       
  3191 
       
  3192 /(?<=a)b/
       
  3193     ab
       
  3194     *** Failers
       
  3195     cb
       
  3196     b
       
  3197 
       
  3198 /(?<!c)b/
       
  3199     ab
       
  3200     b
       
  3201     b
       
  3202 
       
  3203 /(?:..)*a/
       
  3204     aba
       
  3205 
       
  3206 /(?:..)*?a/
       
  3207     aba
       
  3208 
       
  3209 /^(?:b|a(?=(.)))*\1/
       
  3210     abc
       
  3211 
       
  3212 /^(){3,5}/
       
  3213     abc
       
  3214 
       
  3215 /^(a+)*ax/
       
  3216     aax
       
  3217 
       
  3218 /^((a|b)+)*ax/
       
  3219     aax
       
  3220 
       
  3221 /^((a|bc)+)*ax/
       
  3222     aax
       
  3223 
       
  3224 /(a|x)*ab/
       
  3225     cab
       
  3226 
       
  3227 /(a)*ab/
       
  3228     cab
       
  3229 
       
  3230 /(?:(?i)a)b/
       
  3231     ab
       
  3232 
       
  3233 /((?i)a)b/
       
  3234     ab
       
  3235 
       
  3236 /(?:(?i)a)b/
       
  3237     Ab
       
  3238 
       
  3239 /((?i)a)b/
       
  3240     Ab
       
  3241 
       
  3242 /(?:(?i)a)b/
       
  3243     *** Failers
       
  3244     cb
       
  3245     aB
       
  3246 
       
  3247 /((?i)a)b/
       
  3248 
       
  3249 /(?i:a)b/
       
  3250     ab
       
  3251 
       
  3252 /((?i:a))b/
       
  3253     ab
       
  3254 
       
  3255 /(?i:a)b/
       
  3256     Ab
       
  3257 
       
  3258 /((?i:a))b/
       
  3259     Ab
       
  3260 
       
  3261 /(?i:a)b/
       
  3262     *** Failers
       
  3263     aB
       
  3264     aB
       
  3265 
       
  3266 /((?i:a))b/
       
  3267 
       
  3268 /(?:(?-i)a)b/i
       
  3269     ab
       
  3270 
       
  3271 /((?-i)a)b/i
       
  3272     ab
       
  3273 
       
  3274 /(?:(?-i)a)b/i
       
  3275     aB
       
  3276 
       
  3277 /((?-i)a)b/i
       
  3278     aB
       
  3279 
       
  3280 /(?:(?-i)a)b/i
       
  3281     *** Failers
       
  3282     aB
       
  3283     Ab
       
  3284 
       
  3285 /((?-i)a)b/i
       
  3286 
       
  3287 /(?:(?-i)a)b/i
       
  3288     aB
       
  3289 
       
  3290 /((?-i)a)b/i
       
  3291     aB
       
  3292 
       
  3293 /(?:(?-i)a)b/i
       
  3294     *** Failers
       
  3295     Ab
       
  3296     AB
       
  3297 
       
  3298 /((?-i)a)b/i
       
  3299 
       
  3300 /(?-i:a)b/i
       
  3301     ab
       
  3302 
       
  3303 /((?-i:a))b/i
       
  3304     ab
       
  3305 
       
  3306 /(?-i:a)b/i
       
  3307     aB
       
  3308 
       
  3309 /((?-i:a))b/i
       
  3310     aB
       
  3311 
       
  3312 /(?-i:a)b/i
       
  3313     *** Failers
       
  3314     AB
       
  3315     Ab
       
  3316 
       
  3317 /((?-i:a))b/i
       
  3318 
       
  3319 /(?-i:a)b/i
       
  3320     aB
       
  3321 
       
  3322 /((?-i:a))b/i
       
  3323     aB
       
  3324 
       
  3325 /(?-i:a)b/i
       
  3326     *** Failers
       
  3327     Ab
       
  3328     AB
       
  3329 
       
  3330 /((?-i:a))b/i
       
  3331 
       
  3332 /((?-i:a.))b/i
       
  3333     *** Failers
       
  3334     AB
       
  3335     a\nB
       
  3336 
       
  3337 /((?s-i:a.))b/i
       
  3338     a\nB
       
  3339 
       
  3340 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
       
  3341     cabbbb
       
  3342 
       
  3343 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
       
  3344     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
       
  3345 
       
  3346 /(ab)\d\1/i
       
  3347     Ab4ab
       
  3348     ab4Ab
       
  3349 
       
  3350 /foo\w*\d{4}baz/
       
  3351     foobar1234baz
       
  3352 
       
  3353 /x(~~)*(?:(?:F)?)?/
       
  3354     x~~
       
  3355 
       
  3356 /^a(?#xxx){3}c/
       
  3357     aaac
       
  3358 
       
  3359 /^a (?#xxx) (?#yyy) {3}c/x
       
  3360     aaac
       
  3361 
       
  3362 /(?<![cd])b/
       
  3363     *** Failers
       
  3364     B\nB
       
  3365     dbcb
       
  3366 
       
  3367 /(?<![cd])[ab]/
       
  3368     dbaacb
       
  3369 
       
  3370 /(?<!(c|d))b/
       
  3371 
       
  3372 /(?<!(c|d))[ab]/
       
  3373     dbaacb
       
  3374 
       
  3375 /(?<!cd)[ab]/
       
  3376     cdaccb
       
  3377 
       
  3378 /^(?:a?b?)*$/
       
  3379     \
       
  3380     a
       
  3381     ab
       
  3382     aaa   
       
  3383     *** Failers
       
  3384     dbcb
       
  3385     a--
       
  3386     aa-- 
       
  3387 
       
  3388 /((?s)^a(.))((?m)^b$)/
       
  3389     a\nb\nc\n
       
  3390 
       
  3391 /((?m)^b$)/
       
  3392     a\nb\nc\n
       
  3393 
       
  3394 /(?m)^b/
       
  3395     a\nb\n
       
  3396 
       
  3397 /(?m)^(b)/
       
  3398     a\nb\n
       
  3399 
       
  3400 /((?m)^b)/
       
  3401     a\nb\n
       
  3402 
       
  3403 /\n((?m)^b)/
       
  3404     a\nb\n
       
  3405 
       
  3406 /((?s).)c(?!.)/
       
  3407     a\nb\nc\n
       
  3408     a\nb\nc\n
       
  3409 
       
  3410 /((?s)b.)c(?!.)/
       
  3411     a\nb\nc\n
       
  3412     a\nb\nc\n
       
  3413 
       
  3414 /^b/
       
  3415 
       
  3416 /()^b/
       
  3417     *** Failers
       
  3418     a\nb\nc\n
       
  3419     a\nb\nc\n
       
  3420 
       
  3421 /((?m)^b)/
       
  3422     a\nb\nc\n
       
  3423 
       
  3424 /(x)?(?(1)a|b)/
       
  3425     *** Failers
       
  3426     a
       
  3427     a
       
  3428 
       
  3429 /(x)?(?(1)b|a)/
       
  3430     a
       
  3431 
       
  3432 /()?(?(1)b|a)/
       
  3433     a
       
  3434 
       
  3435 /()(?(1)b|a)/
       
  3436 
       
  3437 /()?(?(1)a|b)/
       
  3438     a
       
  3439 
       
  3440 /^(\()?blah(?(1)(\)))$/
       
  3441     (blah)
       
  3442     blah
       
  3443     *** Failers
       
  3444     a
       
  3445     blah)
       
  3446     (blah
       
  3447 
       
  3448 /^(\(+)?blah(?(1)(\)))$/
       
  3449     (blah)
       
  3450     blah
       
  3451     *** Failers
       
  3452     blah)
       
  3453     (blah
       
  3454 
       
  3455 /(?(?!a)a|b)/
       
  3456 
       
  3457 /(?(?!a)b|a)/
       
  3458     a
       
  3459 
       
  3460 /(?(?=a)b|a)/
       
  3461     *** Failers
       
  3462     a
       
  3463     a
       
  3464 
       
  3465 /(?(?=a)a|b)/
       
  3466     a
       
  3467 
       
  3468 /(?=(a+?))(\1ab)/
       
  3469     aaab
       
  3470 
       
  3471 /^(?=(a+?))\1ab/
       
  3472 
       
  3473 /(\w+:)+/
       
  3474     one:
       
  3475 
       
  3476 /$(?<=^(a))/
       
  3477     a
       
  3478 
       
  3479 /(?=(a+?))(\1ab)/
       
  3480     aaab
       
  3481 
       
  3482 /^(?=(a+?))\1ab/
       
  3483     *** Failers
       
  3484     aaab
       
  3485     aaab
       
  3486 
       
  3487 /([\w:]+::)?(\w+)$/
       
  3488     abcd
       
  3489     xy:z:::abcd
       
  3490 
       
  3491 /^[^bcd]*(c+)/
       
  3492     aexycd
       
  3493 
       
  3494 /(a*)b+/
       
  3495     caab
       
  3496 
       
  3497 /([\w:]+::)?(\w+)$/
       
  3498     abcd
       
  3499     xy:z:::abcd
       
  3500     *** Failers
       
  3501     abcd:
       
  3502     abcd:
       
  3503 
       
  3504 /^[^bcd]*(c+)/
       
  3505     aexycd
       
  3506 
       
  3507 /(>a+)ab/
       
  3508 
       
  3509 /(?>a+)b/
       
  3510     aaab
       
  3511 
       
  3512 /([[:]+)/
       
  3513     a:[b]:
       
  3514 
       
  3515 /([[=]+)/
       
  3516     a=[b]=
       
  3517 
       
  3518 /([[.]+)/
       
  3519     a.[b].
       
  3520 
       
  3521 /((?>a+)b)/
       
  3522     aaab
       
  3523 
       
  3524 /(?>(a+))b/
       
  3525     aaab
       
  3526 
       
  3527 /((?>[^()]+)|\([^()]*\))+/
       
  3528     ((abc(ade)ufh()()x
       
  3529 
       
  3530 /a\Z/
       
  3531     *** Failers
       
  3532     aaab
       
  3533     a\nb\n
       
  3534 
       
  3535 /b\Z/
       
  3536     a\nb\n
       
  3537 
       
  3538 /b\z/
       
  3539 
       
  3540 /b\Z/
       
  3541     a\nb
       
  3542 
       
  3543 /b\z/
       
  3544     a\nb
       
  3545     *** Failers
       
  3546     
       
  3547 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
       
  3548     a
       
  3549     abc
       
  3550     a-b
       
  3551     0-9 
       
  3552     a.b
       
  3553     5.6.7  
       
  3554     the.quick.brown.fox
       
  3555     a100.b200.300c  
       
  3556     12-ab.1245 
       
  3557     *** Failers
       
  3558     \
       
  3559     .a
       
  3560     -a
       
  3561     a-
       
  3562     a.  
       
  3563     a_b 
       
  3564     a.-
       
  3565     a..  
       
  3566     ab..bc 
       
  3567     the.quick.brown.fox-
       
  3568     the.quick.brown.fox.
       
  3569     the.quick.brown.fox_
       
  3570     the.quick.brown.fox+       
       
  3571 
       
  3572 /(?>.*)(?<=(abcd|wxyz))/
       
  3573     alphabetabcd
       
  3574     endingwxyz
       
  3575     *** Failers
       
  3576     a rather long string that doesn't end with one of them
       
  3577 
       
  3578 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
       
  3579     word cat dog elephant mussel cow horse canary baboon snake shark otherword
       
  3580     word cat dog elephant mussel cow horse canary baboon snake shark
       
  3581   
       
  3582 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
       
  3583     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
       
  3584 
       
  3585 /(?<=\d{3}(?!999))foo/
       
  3586     999foo
       
  3587     123999foo 
       
  3588     *** Failers
       
  3589     123abcfoo
       
  3590     
       
  3591 /(?<=(?!...999)\d{3})foo/
       
  3592     999foo
       
  3593     123999foo 
       
  3594     *** Failers
       
  3595     123abcfoo
       
  3596 
       
  3597 /(?<=\d{3}(?!999)...)foo/
       
  3598     123abcfoo
       
  3599     123456foo 
       
  3600     *** Failers
       
  3601     123999foo  
       
  3602     
       
  3603 /(?<=\d{3}...)(?<!999)foo/
       
  3604     123abcfoo   
       
  3605     123456foo 
       
  3606     *** Failers
       
  3607     123999foo  
       
  3608 
       
  3609 /<a[\s]+href[\s]*=[\s]*          # find <a href=
       
  3610  ([\"\'])?                       # find single or double quote
       
  3611  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
       
  3612                                  # quote, otherwise match up to next space
       
  3613 /isx
       
  3614     <a href=abcd xyz
       
  3615     <a href=\"abcd xyz pqr\" cats
       
  3616     <a href=\'abcd xyz pqr\' cats
       
  3617 
       
  3618 /<a\s+href\s*=\s*                # find <a href=
       
  3619  (["'])?                         # find single or double quote
       
  3620  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
       
  3621                                  # quote, otherwise match up to next space
       
  3622 /isx
       
  3623     <a href=abcd xyz
       
  3624     <a href=\"abcd xyz pqr\" cats
       
  3625     <a href       =       \'abcd xyz pqr\' cats
       
  3626 
       
  3627 /<a\s+href(?>\s*)=(?>\s*)        # find <a href=
       
  3628  (["'])?                         # find single or double quote
       
  3629  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
       
  3630                                  # quote, otherwise match up to next space
       
  3631 /isx
       
  3632     <a href=abcd xyz
       
  3633     <a href=\"abcd xyz pqr\" cats
       
  3634     <a href       =       \'abcd xyz pqr\' cats
       
  3635 
       
  3636 /((Z)+|A)*/
       
  3637     ZABCDEFG
       
  3638 
       
  3639 /(Z()|A)*/
       
  3640     ZABCDEFG
       
  3641 
       
  3642 /(Z(())|A)*/
       
  3643     ZABCDEFG
       
  3644 
       
  3645 /((?>Z)+|A)*/
       
  3646     ZABCDEFG
       
  3647 
       
  3648 /((?>)+|A)*/
       
  3649     ZABCDEFG
       
  3650 
       
  3651 /a*/g
       
  3652     abbab
       
  3653 
       
  3654 /^[a-\d]/
       
  3655     abcde
       
  3656     -things
       
  3657     0digit
       
  3658     *** Failers
       
  3659     bcdef    
       
  3660 
       
  3661 /^[\d-a]/
       
  3662     abcde
       
  3663     -things
       
  3664     0digit
       
  3665     *** Failers
       
  3666     bcdef    
       
  3667     
       
  3668 /[[:space:]]+/
       
  3669     > \x09\x0a\x0c\x0d\x0b<
       
  3670      
       
  3671 /[[:blank:]]+/
       
  3672     > \x09\x0a\x0c\x0d\x0b<
       
  3673      
       
  3674 /[\s]+/
       
  3675     > \x09\x0a\x0c\x0d\x0b<
       
  3676      
       
  3677 /\s+/
       
  3678     > \x09\x0a\x0c\x0d\x0b<
       
  3679      
       
  3680 /ab/x
       
  3681     ab
       
  3682 
       
  3683 /(?!\A)x/m
       
  3684   a\nxb\n
       
  3685 
       
  3686 /(?!^)x/m
       
  3687   a\nxb\n
       
  3688 
       
  3689 /abc\Qabc\Eabc/
       
  3690     abcabcabc
       
  3691     
       
  3692 /abc\Q(*+|\Eabc/
       
  3693     abc(*+|abc 
       
  3694 
       
  3695 /   abc\Q abc\Eabc/x
       
  3696     abc abcabc
       
  3697     *** Failers
       
  3698     abcabcabc  
       
  3699     
       
  3700 /abc#comment
       
  3701     \Q#not comment
       
  3702     literal\E/x
       
  3703     abc#not comment\n    literal     
       
  3704 
       
  3705 /abc#comment
       
  3706     \Q#not comment
       
  3707     literal/x
       
  3708     abc#not comment\n    literal     
       
  3709 
       
  3710 /abc#comment
       
  3711     \Q#not comment
       
  3712     literal\E #more comment
       
  3713     /x
       
  3714     abc#not comment\n    literal     
       
  3715 
       
  3716 /abc#comment
       
  3717     \Q#not comment
       
  3718     literal\E #more comment/x
       
  3719     abc#not comment\n    literal     
       
  3720 
       
  3721 /\Qabc\$xyz\E/
       
  3722     abc\\\$xyz
       
  3723 
       
  3724 /\Qabc\E\$\Qxyz\E/
       
  3725     abc\$xyz
       
  3726 
       
  3727 /\Gabc/
       
  3728     abc
       
  3729     *** Failers
       
  3730     xyzabc  
       
  3731 
       
  3732 /\Gabc./g
       
  3733     abc1abc2xyzabc3
       
  3734 
       
  3735 /abc./g
       
  3736     abc1abc2xyzabc3 
       
  3737 
       
  3738 /a(?x: b c )d/
       
  3739     XabcdY
       
  3740     *** Failers 
       
  3741     Xa b c d Y 
       
  3742 
       
  3743 /((?x)x y z | a b c)/
       
  3744     XabcY
       
  3745     AxyzB 
       
  3746 
       
  3747 /(?i)AB(?-i)C/
       
  3748     XabCY
       
  3749     *** Failers
       
  3750     XabcY  
       
  3751 
       
  3752 /((?i)AB(?-i)C|D)E/
       
  3753     abCE
       
  3754     DE
       
  3755     *** Failers
       
  3756     abcE
       
  3757     abCe  
       
  3758     dE
       
  3759     De    
       
  3760 
       
  3761 /(.*)\d+\1/
       
  3762     abc123abc
       
  3763     abc123bc 
       
  3764 
       
  3765 /(.*)\d+\1/s
       
  3766     abc123abc
       
  3767     abc123bc 
       
  3768     
       
  3769 /((.*))\d+\1/
       
  3770     abc123abc
       
  3771     abc123bc  
       
  3772 
       
  3773 /-- This tests for an IPv6 address in the form where it can have up to --/
       
  3774 /-- eight components, one and only one of which is empty. This must be --/
       
  3775 /-- an internal component. --/
       
  3776 
       
  3777 /^(?!:)                       # colon disallowed at start
       
  3778   (?:                         # start of item
       
  3779     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
       
  3780     (?(1)0 | () ) )           # if null previously matched, fail; else null
       
  3781     :                         # followed by colon
       
  3782   ){1,7}                      # end item; 1-7 of them required               
       
  3783   [0-9a-f]{1,4} $             # final hex number at end of string
       
  3784   (?(1)|.)                    # check that there was an empty component
       
  3785   /xi
       
  3786     a123::a123
       
  3787     a123:b342::abcd
       
  3788     a123:b342::324e:abcd
       
  3789     a123:ddde:b342::324e:abcd
       
  3790     a123:ddde:b342::324e:dcba:abcd
       
  3791     a123:ddde:9999:b342::324e:dcba:abcd
       
  3792     *** Failers
       
  3793     1:2:3:4:5:6:7:8
       
  3794     a123:bce:ddde:9999:b342::324e:dcba:abcd
       
  3795     a123::9999:b342::324e:dcba:abcd
       
  3796     abcde:2:3:4:5:6:7:8
       
  3797     ::1
       
  3798     abcd:fee0:123::   
       
  3799     :1
       
  3800     1:  
       
  3801 
       
  3802 /[z\Qa-d]\E]/
       
  3803     z
       
  3804     a
       
  3805     -
       
  3806     d
       
  3807     ] 
       
  3808     *** Failers
       
  3809     b     
       
  3810 
       
  3811 /[\z\C]/
       
  3812     z
       
  3813     C 
       
  3814     
       
  3815 /\M/
       
  3816     M 
       
  3817     
       
  3818 /(a+)*b/
       
  3819     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
       
  3820     
       
  3821 /(?i)reg(?:ul(?:[a]|ae)r|ex)/
       
  3822     REGular
       
  3823     regulaer
       
  3824     Regex  
       
  3825     regulr 
       
  3826 
       
  3827 /[--]+/
       
  3828     
       
  3829     
       
  3830     
       
  3831     
       
  3832 
       
  3833 /(?<=Z)X./
       
  3834   \x84XAZXB
       
  3835 
       
  3836 /ab cd (?x) de fg/
       
  3837     ab cd defg
       
  3838 
       
  3839 /ab cd(?x) de fg/
       
  3840     ab cddefg
       
  3841     ** Failers 
       
  3842     abcddefg
       
  3843 
       
  3844 /(?<![^f]oo)(bar)/
       
  3845     foobarX 
       
  3846     ** Failers 
       
  3847     boobarX
       
  3848 
       
  3849 /(?<![^f])X/
       
  3850     offX
       
  3851     ** Failers
       
  3852     onyX  
       
  3853 
       
  3854 /(?<=[^f])X/
       
  3855     onyX
       
  3856     ** Failers
       
  3857     offX 
       
  3858 
       
  3859 /^/mg
       
  3860     a\nb\nc\n
       
  3861     \ 
       
  3862     
       
  3863 /(?<=C\n)^/mg
       
  3864     A\nC\nC\n 
       
  3865 
       
  3866 /(?:(?(1)a|b)(X))+/
       
  3867     bXaX
       
  3868 
       
  3869 /(?:(?(1)\1a|b)(X|Y))+/
       
  3870     bXXaYYaY
       
  3871     bXYaXXaX  
       
  3872 
       
  3873 /()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
       
  3874     bXXaYYaY
       
  3875 
       
  3876 /[[,abc,]+]/
       
  3877     abc]
       
  3878     a,b]
       
  3879     [a,b,c]  
       
  3880 
       
  3881 /(?-x: )/x
       
  3882     A\x20B
       
  3883     
       
  3884 "(?x)(?-x: \s*#\s*)"
       
  3885     A # B
       
  3886     ** Failers
       
  3887     #  
       
  3888 
       
  3889 "(?x-is)(?:(?-ixs) \s*#\s*) include"
       
  3890     A #include
       
  3891     ** Failers
       
  3892     A#include  
       
  3893     A #Include
       
  3894 
       
  3895 /a*b*\w/
       
  3896     aaabbbb
       
  3897     aaaa
       
  3898     a
       
  3899 
       
  3900 /a*b?\w/
       
  3901     aaabbbb
       
  3902     aaaa
       
  3903     a
       
  3904 
       
  3905 /a*b{0,4}\w/
       
  3906     aaabbbb
       
  3907     aaaa
       
  3908     a
       
  3909 
       
  3910 /a*b{0,}\w/
       
  3911     aaabbbb
       
  3912     aaaa
       
  3913     a
       
  3914     
       
  3915 /a*\d*\w/
       
  3916     0a
       
  3917     a 
       
  3918     
       
  3919 /a*b *\w/x
       
  3920     a 
       
  3921 
       
  3922 /a*b#comment
       
  3923   *\w/x
       
  3924     a 
       
  3925 
       
  3926 /a* b *\w/x
       
  3927     a 
       
  3928 
       
  3929 /^\w+=.*(\\\n.*)*/
       
  3930     abc=xyz\\\npqr
       
  3931 
       
  3932 /(?=(\w+))\1:/
       
  3933     abcd:
       
  3934 
       
  3935 /^(?=(\w+))\1:/
       
  3936     abcd:
       
  3937 
       
  3938 /^\Eabc/
       
  3939     abc
       
  3940     
       
  3941 /^[\Eabc]/
       
  3942     a
       
  3943     ** Failers 
       
  3944     E 
       
  3945     
       
  3946 /^[a-\Ec]/
       
  3947     b
       
  3948     ** Failers
       
  3949     -
       
  3950     E    
       
  3951 
       
  3952 /^[a\E\E-\Ec]/
       
  3953     b
       
  3954     ** Failers
       
  3955     -
       
  3956     E    
       
  3957 
       
  3958 /^[\E\Qa\E-\Qz\E]+/
       
  3959     b
       
  3960     ** Failers
       
  3961     -  
       
  3962     
       
  3963 /^[a\Q]bc\E]/
       
  3964     a
       
  3965     ]
       
  3966     c
       
  3967     
       
  3968 /^[a-\Q\E]/
       
  3969     a
       
  3970     -     
       
  3971 
       
  3972 /^(a()*)*/
       
  3973     aaaa
       
  3974 
       
  3975 /^(?:a(?:(?:))*)*/
       
  3976     aaaa
       
  3977 
       
  3978 /^(a()+)+/
       
  3979     aaaa
       
  3980 
       
  3981 /^(?:a(?:(?:))+)+/
       
  3982     aaaa
       
  3983 
       
  3984 /(a){0,3}(?(1)b|(c|))*D/
       
  3985     abbD
       
  3986     ccccD
       
  3987     D  
       
  3988 
       
  3989 /(a|)*\d/
       
  3990   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  3991   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  3992 
       
  3993 /(?>a|)*\d/
       
  3994   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  3995   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  3996 
       
  3997 /(?:a|)*\d/
       
  3998   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
       
  3999   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
       
  4000 
       
  4001 /\Z/g
       
  4002   abc\n
       
  4003   
       
  4004 /^(?s)(?>.*)(?<!\n)/
       
  4005   abc
       
  4006   abc\n  
       
  4007 
       
  4008 /^(?![^\n]*\n\z)/
       
  4009   abc
       
  4010   abc\n 
       
  4011   
       
  4012 /\z(?<!\n)/
       
  4013   abc
       
  4014   abc\n  
       
  4015 
       
  4016 /(.*(.)?)*/
       
  4017     abcd
       
  4018 
       
  4019 /( (A | (?(1)0|) )*   )/x
       
  4020     abcd
       
  4021 
       
  4022 /( ( (?(1)0|) )*   )/x
       
  4023     abcd
       
  4024 
       
  4025 /(  (?(1)0|)*   )/x
       
  4026     abcd
       
  4027 
       
  4028 /[[:abcd:xyz]]/
       
  4029     a]
       
  4030     :] 
       
  4031     
       
  4032 /[abc[:x\]pqr]/
       
  4033     a
       
  4034     [
       
  4035     :
       
  4036     ]
       
  4037     p    
       
  4038 
       
  4039 /.*[op][xyz]/
       
  4040     fooabcfoo
       
  4041 
       
  4042 / End of testinput1 /