| # This set of tests check the DFA matching functionality of pcre2_dfa_match(), | |
| # excluding UTF and Unicode property support. All matches are done using DFA, | |
| # forced by setting a default subject modifier at the start. | |
| #forbid_utf | |
| #subject dfa | |
| #newline_default lf anycrlf any | |
| /abc/ | |
| abc | |
| /ab*c/ | |
| abc | |
| abbbbc | |
| ac | |
| /ab+c/ | |
| abc | |
| abbbbbbc | |
| \= Expect no match | |
| ac | |
| ab | |
| /a*/no_auto_possess | |
| a | |
| aaaaaaaaaaaaaaaaa | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=10 | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=dfa_shortest | |
| /(a|abcd|african)/ | |
| a | |
| abcd | |
| african | |
| /^abc/ | |
| abcdef | |
| \= Expect no match | |
| xyzabc | |
| xyz\nabc | |
| /^abc/m | |
| abcdef | |
| xyz\nabc | |
| \= Expect no match | |
| xyzabc | |
| /\Aabc/ | |
| abcdef | |
| \= Expect no match | |
| xyzabc | |
| xyz\nabc | |
| /\Aabc/m | |
| abcdef | |
| \= Expect no match | |
| xyzabc | |
| xyz\nabc | |
| /\Gabc/ | |
| abcdef | |
| xyzabc\=offset=3 | |
| \= Expect no match | |
| xyzabc | |
| xyzabc\=offset=2 | |
| /x\dy\Dz/ | |
| x9yzz | |
| x0y+z | |
| \= Expect no match | |
| xyz | |
| xxy0z | |
| /x\sy\Sz/ | |
| x yzz | |
| x y+z | |
| \= Expect no match | |
| xyz | |
| xxyyz | |
| /x\wy\Wz/ | |
| xxy+z | |
| \= Expect no match | |
| xxy0z | |
| x+y+z | |
| /x.y/ | |
| x+y | |
| x-y | |
| \= Expect no match | |
| x\ny | |
| /x.y/s | |
| x+y | |
| x-y | |
| x\ny | |
| /(a.b(?s)c.d|x.y)p.q/ | |
| a+bc+dp+q | |
| a+bc\ndp+q | |
| x\nyp+q | |
| \= Expect no match | |
| a\nbc\ndp+q | |
| a+bc\ndp\nq | |
| x\nyp\nq | |
| /a\d\z/ | |
| ba0 | |
| \= Expect no match | |
| ba0\n | |
| ba0\ncd | |
| /a\d\z/m | |
| ba0 | |
| \= Expect no match | |
| ba0\n | |
| ba0\ncd | |
| /a\d\Z/ | |
| ba0 | |
| ba0\n | |
| \= Expect no match | |
| ba0\ncd | |
| /a\d\Z/m | |
| ba0 | |
| ba0\n | |
| \= Expect no match | |
| ba0\ncd | |
| /a\d$/ | |
| ba0 | |
| ba0\n | |
| \= Expect no match | |
| ba0\ncd | |
| /a\d$/m | |
| ba0 | |
| ba0\n | |
| ba0\ncd | |
| /abc/i | |
| abc | |
| aBc | |
| ABC | |
| /[^a]/ | |
| abcd | |
| /ab?\w/ | |
| abz | |
| abbz | |
| azz | |
| /x{0,3}yz/ | |
| ayzq | |
| axyzq | |
| axxyz | |
| axxxyzq | |
| axxxxyzq | |
| \= Expect no match | |
| ax | |
| axx | |
| /x{3}yz/ | |
| axxxyzq | |
| axxxxyzq | |
| \= Expect no match | |
| ax | |
| axx | |
| ayzq | |
| axyzq | |
| axxyz | |
| /x{2,3}yz/ | |
| axxyz | |
| axxxyzq | |
| axxxxyzq | |
| \= Expect no match | |
| ax | |
| axx | |
| ayzq | |
| axyzq | |
| /[^a]+/no_auto_possess | |
| bac | |
| bcdefax | |
| \= Expect no match | |
| aaaaa | |
| /[^a]*/no_auto_possess | |
| bac | |
| bcdefax | |
| aaaaa | |
| /[^a]{3,5}/no_auto_possess | |
| xyz | |
| awxyza | |
| abcdefa | |
| abcdefghijk | |
| \= Expect no match | |
| axya | |
| axa | |
| aaaaa | |
| /\d*/ | |
| 1234b567 | |
| xyz | |
| /\D*/ | |
| a1234b567 | |
| xyz | |
| /\d+/ | |
| ab1234c56 | |
| \= Expect no match | |
| xyz | |
| /\D+/ | |
| ab123c56 | |
| \= Expect no match | |
| 789 | |
| /\d?A/ | |
| 045ABC | |
| ABC | |
| \= Expect no match | |
| XYZ | |
| /\D?A/ | |
| ABC | |
| BAC | |
| 9ABC | |
| /a+/ | |
| aaaa | |
| /^.*xyz/ | |
| xyz | |
| ggggggggxyz | |
| /^.+xyz/ | |
| abcdxyz | |
| axyz | |
| \= Expect no match | |
| xyz | |
| /^.?xyz/ | |
| xyz | |
| cxyz | |
| /^\d{2,3}X/ | |
| 12X | |
| 123X | |
| \= Expect no match | |
| X | |
| 1X | |
| 1234X | |
| /^[abcd]\d/ | |
| a45 | |
| b93 | |
| c99z | |
| d04 | |
| \= Expect no match | |
| e45 | |
| abcd | |
| abcd1234 | |
| 1234 | |
| /^[abcd]*\d/ | |
| a45 | |
| b93 | |
| c99z | |
| d04 | |
| abcd1234 | |
| 1234 | |
| \= Expect no match | |
| e45 | |
| abcd | |
| /^[abcd]+\d/ | |
| a45 | |
| b93 | |
| c99z | |
| d04 | |
| abcd1234 | |
| \= Expect no match | |
| 1234 | |
| e45 | |
| abcd | |
| /^a+X/ | |
| aX | |
| aaX | |
| /^[abcd]?\d/ | |
| a45 | |
| b93 | |
| c99z | |
| d04 | |
| 1234 | |
| \= Expect no match | |
| abcd1234 | |
| e45 | |
| /^[abcd]{2,3}\d/ | |
| ab45 | |
| bcd93 | |
| \= Expect no match | |
| 1234 | |
| a36 | |
| abcd1234 | |
| ee45 | |
| /^(abc)*\d/ | |
| abc45 | |
| abcabcabc45 | |
| 42xyz | |
| /^(abc)+\d/ | |
| abc45 | |
| abcabcabc45 | |
| \= Expect no match | |
| 42xyz | |
| /^(abc)?\d/ | |
| abc45 | |
| 42xyz | |
| \= Expect no match | |
| abcabcabc45 | |
| /^(abc){2,3}\d/ | |
| abcabc45 | |
| abcabcabc45 | |
| \= Expect no match | |
| abcabcabcabc45 | |
| abc45 | |
| 42xyz | |
| /1(abc|xyz)2(?1)3/ | |
| 1abc2abc3456 | |
| 1abc2xyz3456 | |
| /^(a*\w|ab)=(a*\w|ab)/ | |
| ab=ab | |
| /^(a*\w|ab)=(?1)/ | |
| ab=ab | |
| /^([^()]|\((?1)*\))*$/ | |
| abc | |
| a(b)c | |
| a(b(c))d | |
| \= Expect no match) | |
| a(b(c)d | |
| /^>abc>([^()]|\((?1)*\))*<xyz<$/ | |
| >abc>123<xyz< | |
| >abc>1(2)3<xyz< | |
| >abc>(1(2)3)<xyz< | |
| /^(?>a*)\d/ | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876 | |
| \= Expect no match | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x | |
| <> | |
| <abcd> | |
| <abc <123> hij> | |
| <abc <def> hij> | |
| <abc<>def> | |
| <abc<> | |
| \= Expect no match | |
| <abc | |
| /^(?(?=abc)\w{3}:|\d\d)$/ | |
| abc: | |
| 12 | |
| \= Expect no match | |
| 123 | |
| xyz | |
| /^(?(?!abc)\d\d|\w{3}:)$/ | |
| abc: | |
| 12 | |
| \= Expect no match | |
| 123 | |
| xyz | |
| /^(?=abc)\w{5}:$/ | |
| abcde: | |
| \= Expect no match | |
| abc.. | |
| 123 | |
| vwxyz | |
| /^(?!abc)\d\d$/ | |
| 12 | |
| \= Expect no match | |
| abcde: | |
| abc.. | |
| 123 | |
| vwxyz | |
| /(?<=abc|xy)123/ | |
| abc12345 | |
| wxy123z | |
| \= Expect no match | |
| 123abc | |
| /(?<!abc|xy)123/ | |
| 123abc | |
| mno123456 | |
| \= Expect no match | |
| abc12345 | |
| wxy123z | |
| /abc(?C1)xyz/ | |
| abcxyz | |
| 123abcxyz999 | |
| /(ab|cd){3,4}/auto_callout | |
| ababab | |
| abcdabcd | |
| abcdcdcdcdcd | |
| /^abc/ | |
| abcdef | |
| \= Expect no match | |
| abcdef\=notbol | |
| /^(a*|xyz)/ | |
| bcd | |
| aaabcd | |
| xyz | |
| xyz\=notempty | |
| \= Expect no match | |
| bcd\=notempty | |
| /xyz$/ | |
| xyz | |
| xyz\n | |
| \= Expect no match | |
| xyz\=noteol | |
| xyz\n\=noteol | |
| /xyz$/m | |
| xyz | |
| xyz\n | |
| abcxyz\npqr | |
| abcxyz\npqr\=noteol | |
| xyz\n\=noteol | |
| \= Expect no match | |
| xyz\=noteol | |
| /\Gabc/ | |
| abcdef | |
| defabcxyz\=offset=3 | |
| \= Expect no match | |
| defabcxyz | |
| /^abcdef/ | |
| ab\=ps | |
| abcde\=ps | |
| abcdef\=ps | |
| \= Expect no match | |
| abx\=ps | |
| /^a{2,4}\d+z/ | |
| a\=ps | |
| aa\=ps | |
| aa2\=ps | |
| aaa\=ps | |
| aaa23\=ps | |
| aaaa12345\=ps | |
| aa0z\=ps | |
| aaaa4444444444444z\=ps | |
| \= Expect no match | |
| az\=ps | |
| aaaaa\=ps | |
| a56\=ps | |
| /^abcdef/ | |
| abc\=ps | |
| def\=dfa_restart | |
| /(?<=foo)bar/ | |
| foob\=ps,offset=2,allusedtext | |
| foobar...\=ps,dfa_restart,offset=4 | |
| foobar\=offset=2 | |
| \= Expect no match | |
| xyzfo\=ps | |
| obar\=dfa_restart | |
| /(ab*(cd|ef))+X/ | |
| lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\=ps,notbol,noteol | |
| cdabbbbbbbb\=ps,notbol,dfa_restart,noteol | |
| efabbbbbbbbbbbbbbbb\=ps,notbol,dfa_restart,noteol | |
| bbbbbbbbbbbbcdXyasdfadf\=ps,notbol,dfa_restart,noteol | |
| \= Expect no match | |
| adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\=ps,noteol | |
| /the quick brown fox/ | |
| the quick brown fox | |
| What do you know about the quick brown fox? | |
| \= Expect no match | |
| The quick brown FOX | |
| What do you know about THE QUICK BROWN FOX? | |
| /The quick brown fox/i | |
| the quick brown fox | |
| The quick brown FOX | |
| What do you know about the quick brown fox? | |
| What do you know about THE QUICK BROWN FOX? | |
| #if !ebcdic | |
| /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ | |
| abcd\t\n\r\f\a\e9;\$\\?caxyz | |
| #endif | |
| /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ | |
| abxyzpqrrrabbxyyyypqAzz | |
| abxyzpqrrrabbxyyyypqAzz | |
| aabxyzpqrrrabbxyyyypqAzz | |
| aaabxyzpqrrrabbxyyyypqAzz | |
| aaaabxyzpqrrrabbxyyyypqAzz | |
| abcxyzpqrrrabbxyyyypqAzz | |
| aabcxyzpqrrrabbxyyyypqAzz | |
| aaabcxyzpqrrrabbxyyyypAzz | |
| aaabcxyzpqrrrabbxyyyypqAzz | |
| aaabcxyzpqrrrabbxyyyypqqAzz | |
| aaabcxyzpqrrrabbxyyyypqqqAzz | |
| aaabcxyzpqrrrabbxyyyypqqqqAzz | |
| aaabcxyzpqrrrabbxyyyypqqqqqAzz | |
| aaabcxyzpqrrrabbxyyyypqqqqqqAzz | |
| aaaabcxyzpqrrrabbxyyyypqAzz | |
| abxyzzpqrrrabbxyyyypqAzz | |
| aabxyzzzpqrrrabbxyyyypqAzz | |
| aaabxyzzzzpqrrrabbxyyyypqAzz | |
| aaaabxyzzzzpqrrrabbxyyyypqAzz | |
| abcxyzzpqrrrabbxyyyypqAzz | |
| aabcxyzzzpqrrrabbxyyyypqAzz | |
| aaabcxyzzzzpqrrrabbxyyyypqAzz | |
| aaaabcxyzzzzpqrrrabbxyyyypqAzz | |
| aaaabcxyzzzzpqrrrabbbxyyyypqAzz | |
| aaaabcxyzzzzpqrrrabbbxyyyyypqAzz | |
| aaabcxyzpqrrrabbxyyyypABzz | |
| aaabcxyzpqrrrabbxyyyypABBzz | |
| >>>aaabxyzpqrrrabbxyyyypqAzz | |
| >aaaabxyzpqrrrabbxyyyypqAzz | |
| >>>>abcxyzpqrrrabbxyyyypqAzz | |
| \= Expect no match | |
| abxyzpqrrabbxyyyypqAzz | |
| abxyzpqrrrrabbxyyyypqAzz | |
| abxyzpqrrrabxyyyypqAzz | |
| aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz | |
| aaaabcxyzzzzpqrrrabbbxyyypqAzz | |
| aaabcxyzpqrrrabbxyyyypqqqqqqqAzz | |
| /^(abc){1,2}zz/ | |
| abczz | |
| abcabczz | |
| \= Expect no match | |
| zz | |
| abcabcabczz | |
| >>abczz | |
| /^(b+?|a){1,2}?c/ | |
| bc | |
| bbc | |
| bbbc | |
| bac | |
| bbac | |
| aac | |
| abbbbbbbbbbbc | |
| bbbbbbbbbbbac | |
| \= Expect no match | |
| aaac | |
| abbbbbbbbbbbac | |
| /^(b+|a){1,2}c/ | |
| bc | |
| bbc | |
| bbbc | |
| bac | |
| bbac | |
| aac | |
| abbbbbbbbbbbc | |
| bbbbbbbbbbbac | |
| \= Expect no match | |
| aaac | |
| abbbbbbbbbbbac | |
| /^(b+|a){1,2}?bc/ | |
| bbc | |
| /^(b*|ba){1,2}?bc/ | |
| babc | |
| bbabc | |
| bababc | |
| \= Expect no match | |
| bababbc | |
| babababc | |
| /^(ba|b*){1,2}?bc/ | |
| babc | |
| bbabc | |
| bababc | |
| \= Expect no match | |
| bababbc | |
| babababc | |
| #if !ebcdic | |
| /^\ca\cA\c[\c{\c:/ | |
| \x01\x01\e;z | |
| #endif | |
| /^[ab\]cde]/ | |
| athing | |
| bthing | |
| ]thing | |
| cthing | |
| dthing | |
| ething | |
| \= Expect no match | |
| fthing | |
| [thing | |
| \\thing | |
| /^[]cde]/ | |
| ]thing | |
| cthing | |
| dthing | |
| ething | |
| \= Expect no match | |
| athing | |
| fthing | |
| /^[^ab\]cde]/ | |
| fthing | |
| [thing | |
| \\thing | |
| \= Expect no match | |
| athing | |
| bthing | |
| ]thing | |
| cthing | |
| dthing | |
| ething | |
| /^[^]cde]/ | |
| athing | |
| fthing | |
| \= Expect no match | |
| ]thing | |
| cthing | |
| dthing | |
| ething | |
| /^\/ | |
| | |
| /^ÿ/ | |
| ÿ | |
| /^[0-9]+$/ | |
| 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 100 | |
| \= Expect no match | |
| abc | |
| /^.*nter/ | |
| enter | |
| inter | |
| uponter | |
| /^xxx[0-9]+$/ | |
| xxx0 | |
| xxx1234 | |
| \= Expect no match | |
| xxx | |
| /^.+[0-9][0-9][0-9]$/ | |
| x123 | |
| xx123 | |
| 123456 | |
| x1234 | |
| \= Expect no match | |
| 123 | |
| /^.+?[0-9][0-9][0-9]$/ | |
| x123 | |
| xx123 | |
| 123456 | |
| x1234 | |
| \= Expect no match | |
| 123 | |
| /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ | |
| abc!pqr=apquxz.ixr.zzz.ac.uk | |
| \= Expect no match | |
| !pqr=apquxz.ixr.zzz.ac.uk | |
| abc!=apquxz.ixr.zzz.ac.uk | |
| abc!pqr=apquxz:ixr.zzz.ac.uk | |
| abc!pqr=apquxz.ixr.zzz.ac.ukk | |
| /:/ | |
| Well, we need a colon: somewhere | |
| \= Expect no match | |
| No match without a colon | |
| /([\da-f:]+)$/i | |
| 0abc | |
| abc | |
| fed | |
| E | |
| :: | |
| 5f03:12C0::932e | |
| fed def | |
| Any old stuff | |
| \= Expect no match | |
| 0zzz | |
| gzzz | |
| fed\x20 | |
| Any old rubbish | |
| /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ | |
| .1.2.3 | |
| A.12.123.0 | |
| \= Expect no match | |
| .1.2.3333 | |
| 1.2.3 | |
| 1234.2.3 | |
| /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ | |
| 1 IN SOA non-sp1 non-sp2( | |
| 1 IN SOA non-sp1 non-sp2 ( | |
| \= Expect no match | |
| 1IN SOA non-sp1 non-sp2( | |
| /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-Z\d\-]*)*\.$/ | |
| a. | |
| Z. | |
| 2. | |
| ab-c.pq-r. | |
| sxk.zzz.ac.uk. | |
| x-.y-. | |
| \= Expect no match | |
| -abc.peq. | |
| /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ | |
| *.a | |
| *.b0-a | |
| *.c3-b.c | |
| *.c-a.b-c | |
| \= Expect no match | |
| *.0 | |
| *.a- | |
| *.a-b.c- | |
| *.c-a.0-c | |
| /^(?=ab(de))(abd)(e)/ | |
| abde | |
| /^(?!(ab)de|x)(abd)(f)/ | |
| abdf | |
| /^(?=(ab(cd)))(ab)/ | |
| abcd | |
| /^[\da-f](\.[\da-f])*$/i | |
| a.b.c.d | |
| A.B.C.D | |
| a.b.c.1.2.3.C | |
| /^\".*\"\s*(;.*)?$/ | |
| \"1234\" | |
| \"abcd\" ; | |
| \"\" ; rhubarb | |
| \= Expect no match | |
| \"1234\" : things | |
| /^$/ | |
| \ | |
| / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x | |
| ab c | |
| \= Expect no match | |
| abc | |
| ab cde | |
| /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ | |
| ab c | |
| \= Expect no match | |
| abc | |
| ab cde | |
| /^ a\ b[c ]d $/x | |
| a bcd | |
| a b d | |
| \= Expect no match | |
| abcd | |
| ab d | |
| /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ | |
| abcdefhijklm | |
| /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ | |
| abcdefhijklm | |
| /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ | |
| a+ Z0+\x08\n\x1d\x12 | |
| /^[.^$|()*+?{,}]+/ | |
| .^\$(*+)|{?,?} | |
| /^a*\w/ | |
| z | |
| az | |
| aaaz | |
| a | |
| aa | |
| aaaa | |
| a+ | |
| aa+ | |
| /^a*?\w/ | |
| z | |
| az | |
| aaaz | |
| a | |
| aa | |
| aaaa | |
| a+ | |
| aa+ | |
| /^a+\w/ | |
| az | |
| aaaz | |
| aa | |
| aaaa | |
| aa+ | |
| /^a+?\w/ | |
| az | |
| aaaz | |
| aa | |
| aaaa | |
| aa+ | |
| /^\d{8}\w{2,}/ | |
| 1234567890 | |
| 12345678ab | |
| 12345678__ | |
| \= Expect no match | |
| 1234567 | |
| /^[aeiou\d]{4,5}$/ | |
| uoie | |
| 1234 | |
| 12345 | |
| aaaaa | |
| \= Expect no match | |
| 123456 | |
| /^[aeiou\d]{4,5}?/ | |
| uoie | |
| 1234 | |
| 12345 | |
| aaaaa | |
| 123456 | |
| /^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]/ | |
| From abcd Mon Sep 01 12:33:02 1997 | |
| /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ | |
| From abcd Mon Sep 01 12:33:02 1997 | |
| From abcd Mon Sep 1 12:33:02 1997 | |
| \= Expect no match | |
| From abcd Sep 01 12:33:02 1997 | |
| /^12.34/s | |
| 12\n34 | |
| 12\r34 | |
| /\w+(?=\t)/ | |
| the quick brown\t fox | |
| /foo(?!bar)(.*)/ | |
| foobar is foolish see? | |
| /(?:(?!foo)...|^.{0,2})bar(.*)/ | |
| foobar crowbar etc | |
| barrel | |
| 2barrel | |
| A barrel | |
| /^(\D*)(?=\d)(?!123)/ | |
| abc456 | |
| \= Expect no match | |
| abc123 | |
| /^1234(?# test newlines | |
| inside)/ | |
| 1234 | |
| /^1234 #comment in extended re | |
| /x | |
| 1234 | |
| /#rhubarb | |
| abcd/x | |
| abcd | |
| /^abcd#rhubarb/x | |
| abcd | |
| /(?!^)abc/ | |
| the abc | |
| \= Expect no match | |
| abc | |
| /(?=^)abc/ | |
| abc | |
| \= Expect no match | |
| the abc | |
| /^[ab]{1,3}(ab*|b)/no_auto_possess | |
| aabbbbb | |
| /^[ab]{1,3}?(ab*|b)/no_auto_possess | |
| aabbbbb | |
| /^[ab]{1,3}?(ab*?|b)/no_auto_possess | |
| aabbbbb | |
| /^[ab]{1,3}(ab*?|b)/no_auto_possess | |
| aabbbbb | |
| #if !ebcdic | |
| / (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* # optional leading comment | |
| (?: (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| ) # initial word | |
| (?: (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| ) )* # further okay, if led by a period | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* @ (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # initial subdomain | |
| (?: # | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. # if led by a period... | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # ...further okay | |
| )* | |
| # address | |
| | # or | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| ) # one word, optionally followed by.... | |
| (?: | |
| [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... | |
| \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) | # comments, or... | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| # quoted strings | |
| )* | |
| < (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* # leading < | |
| (?: @ (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # initial subdomain | |
| (?: # | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. # if led by a period... | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # ...further okay | |
| )* | |
| (?: (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* , (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* @ (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # initial subdomain | |
| (?: # | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. # if led by a period... | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # ...further okay | |
| )* | |
| )* # further okay, if led by comma | |
| : # closing colon | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* )? # optional route | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| ) # initial word | |
| (?: (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| " (?: # opening quote... | |
| [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| | # or | |
| \\ [^\x80-\xff] # Escaped something (something != CR) | |
| )* " # closing quote | |
| ) )* # further okay, if led by a period | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* @ (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # initial subdomain | |
| (?: # | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* \. # if led by a period... | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) # ...further okay | |
| )* | |
| # address spec | |
| (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* > # trailing > | |
| # name and address | |
| ) (?: [\040\t] | \( | |
| (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| \) )* # optional trailing comment | |
| /x | |
| Alan Other <user\@dom.ain> | |
| <user\@dom.ain> | |
| user\@dom.ain | |
| \"A. Other\" <user.1234\@dom.ain> (a comment) | |
| A. Other <user.1234\@dom.ain> (a comment) | |
| \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay | |
| A missing angle <user\@some.where | |
| \= Expect no match | |
| The quick brown fox | |
| /[\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional leading comment | |
| (?: | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| # Atom | |
| | # or | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| # Quoted string | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| # Atom | |
| | # or | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| # Quoted string | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # additional words | |
| )* | |
| @ | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| )* | |
| # address | |
| | # or | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| # Atom | |
| | # or | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| # Quoted string | |
| ) | |
| # leading word | |
| [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces | |
| (?: | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| | | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| ) # "special" comment or quoted string | |
| [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" | |
| )* | |
| < | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # < | |
| (?: | |
| @ | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| )* | |
| (?: , | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| @ | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| )* | |
| )* # additional domains | |
| : | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| )? # optional route | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| # Atom | |
| | # or | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| # Quoted string | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| # Atom | |
| | # or | |
| " # " | |
| [^\\\x80-\xff\n\015"] * # normal | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
| " # " | |
| # Quoted string | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # additional words | |
| )* | |
| @ | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| (?: | |
| \. | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| (?: | |
| [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| | | |
| \[ # [ | |
| (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| \] # ] | |
| ) | |
| [\040\t]* # Nab whitespace. | |
| (?: | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: # ( | |
| (?: \\ [^\x80-\xff] | | |
| \( # ( | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
| \) # ) | |
| ) # special | |
| [^\\\x80-\xff\n\015()] * # normal* | |
| )* # )* | |
| \) # ) | |
| [\040\t]* )* # If comment found, allow more spaces. | |
| # optional trailing comments | |
| )* | |
| # address spec | |
| > # > | |
| # name and address | |
| ) | |
| /x | |
| Alan Other <user\@dom.ain> | |
| <user\@dom.ain> | |
| user\@dom.ain | |
| \"A. Other\" <user.1234\@dom.ain> (a comment) | |
| A. Other <user.1234\@dom.ain> (a comment) | |
| \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay | |
| A missing angle <user\@some.where | |
| \= Expect no match | |
| The quick brown fox | |
| #endif | |
| /abc\0def\00pqr\000xyz\0000AB/ | |
| abc\0def\00pqr\000xyz\0000AB | |
| abc456 abc\0def\00pqr\000xyz\0000ABCDE | |
| /abc\x0def\x00pqr\x000xyz\x0000AB/ | |
| abc\x0def\x00pqr\x000xyz\x0000AB | |
| abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE | |
| /^[\000-\037]/ | |
| \0A | |
| \01B | |
| \037C | |
| /\0*/ | |
| \0\0\0\0 | |
| /A\x0{2,3}Z/ | |
| The A\x0\x0Z | |
| An A\0\x0\0Z | |
| \= Expect no match | |
| A\0Z | |
| A\0\x0\0\x0Z | |
| /^\s/ | |
| \040abc | |
| \x0cabc | |
| \nabc | |
| \rabc | |
| \tabc | |
| \= Expect no match | |
| abc | |
| /^a b | |
| c/x | |
| abc | |
| /ab{1,3}bc/ | |
| abbbbc | |
| abbbc | |
| abbc | |
| \= Expect no match | |
| abc | |
| abbbbbc | |
| /([^.]*)\.([^:]*):[T ]+(.*)/ | |
| track1.title:TBlah blah blah | |
| /([^.]*)\.([^:]*):[T ]+(.*)/i | |
| track1.title:TBlah blah blah | |
| /([^.]*)\.([^:]*):[t ]+(.*)/i | |
| track1.title:TBlah blah blah | |
| #if !ebcdic | |
| /^[W-c]+$/ | |
| WXY_^abc | |
| \= Expect no match | |
| wxy | |
| /^[W-c]+$/i | |
| WXY_^abc | |
| wxy_^ABC | |
| /^[\x3f-\x5F]+$/i | |
| WXY_^abc | |
| wxy_^ABC | |
| #endif | |
| /^abc$/m | |
| abc | |
| qqq\nabc | |
| abc\nzzz | |
| qqq\nabc\nzzz | |
| /^abc$/ | |
| abc | |
| \= Expect no match | |
| qqq\nabc | |
| abc\nzzz | |
| qqq\nabc\nzzz | |
| /\Aabc\Z/m | |
| abc | |
| abc\n | |
| \= Expect no match | |
| qqq\nabc | |
| abc\nzzz | |
| qqq\nabc\nzzz | |
| /\A(.)*\Z/s | |
| abc\ndef | |
| /\A(.)*\Z/m | |
| \= Expect no match | |
| abc\ndef | |
| /(?:b)|(?::+)/ | |
| b::c | |
| c::b | |
| /[-az]+/ | |
| az- | |
| \= Expect no match | |
| b | |
| /[az-]+/ | |
| za- | |
| \= Expect no match | |
| b | |
| /[a\-z]+/ | |
| a-z | |
| \= Expect no match | |
| b | |
| /[a-z]+/ | |
| abcdxyz | |
| /[\d-]+/ | |
| 12-34 | |
| \= Expect no match | |
| aaa | |
| #if !ebcdic | |
| /\x5c/ | |
| \\ | |
| /\x20Z/ | |
| the Zoo | |
| \= Expect no match | |
| Zulu | |
| #endif | |
| /ab{3cd/ | |
| ab{3cd | |
| /ab{3,cd/ | |
| ab{3,cd | |
| /ab{3,4a}cd/ | |
| ab{3,4a}cd | |
| /{4,5a}bc/ | |
| {4,5a}bc | |
| /^a.b/newline=lf | |
| a\rb | |
| \= Expect no match | |
| a\nb | |
| /abc$/ | |
| abc | |
| abc\n | |
| \= Expect no match | |
| abc\ndef | |
| #if !ebcdic | |
| /(abc)\123/ | |
| abc\x53 | |
| /(abc)\223/ | |
| abc\x93 | |
| /(abc)\323/ | |
| abc\xd3 | |
| /(abc)\100/ | |
| abc\x40 | |
| abc\100 | |
| /(abc)\1000/ | |
| abc\x400 | |
| abc\x40\x30 | |
| abc\1000 | |
| abc\100\x30 | |
| abc\100\060 | |
| abc\100\60 | |
| /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ | |
| abcdefghijk\12S | |
| #endif | |
| /a{0}bc/ | |
| bc | |
| /(a|(bc)){0,0}?xyz/ | |
| xyz | |
| #if !ebcdic | |
| /abc[\10]de/ | |
| abc\010de | |
| #endif | |
| /abc[\1]de/ | |
| abc\1de | |
| /(abc)[\1]de/ | |
| abc\1de | |
| /(?s)a.b/ | |
| a\nb | |
| /^([^a])([^\b])([^c]*)([^d]{3,4})/ | |
| baNOTccccd | |
| baNOTcccd | |
| baNOTccd | |
| bacccd | |
| \= Expect no match | |
| anything | |
| b\bc | |
| baccd | |
| /[^a]/ | |
| Abc | |
| /[^a]/i | |
| Abc | |
| /[^a]+/ | |
| AAAaAbc | |
| /[^a]+/i | |
| AAAaAbc | |
| /[^a]+/ | |
| bbb\nccc | |
| /[^k]$/ | |
| abc | |
| \= Expect no match | |
| abk | |
| /[^k]{2,3}$/ | |
| abc | |
| kbc | |
| kabc | |
| \= Expect no match | |
| abk | |
| akb | |
| akk | |
| /^\d{8,}\@.+[^k]$/ | |
| 12345678\@a.b.c.d | |
| 123456789\@x.y.z | |
| \= Expect no match | |
| 12345678\@x.y.uk | |
| 1234567\@a.b.c.d | |
| /[^a]/ | |
| aaaabcd | |
| aaAabcd | |
| /[^a]/i | |
| aaaabcd | |
| aaAabcd | |
| /[^az]/ | |
| aaaabcd | |
| aaAabcd | |
| /[^az]/i | |
| aaaabcd | |
| aaAabcd | |
| #if !ebcdic | |
| /\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/ | |
| \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 | |
| #endif | |
| /P[^*]TAIRE[^*]{1,6}?LL/ | |
| xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
| /P[^*]TAIRE[^*]{1,}?LL/ | |
| xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
| /(\.\d\d[1-9]?)\d+/ | |
| 1.230003938 | |
| 1.875000282 | |
| 1.235 | |
| /(\.\d\d((?=0)|\d(?=\d)))/ | |
| 1.230003938 | |
| 1.875000282 | |
| \= Expect no match | |
| 1.235 | |
| /a(?)b/ | |
| ab | |
| /\b(foo)\s+(\w+)/i | |
| Food is on the foo table | |
| /foo(.*)bar/ | |
| The food is under the bar in the barn. | |
| /foo(.*?)bar/ | |
| The food is under the bar in the barn. | |
| /(.*)(\d*)/no_auto_possess | |
| I have 2 numbers: 53147 | |
| /(.*)(\d+)/ | |
| I have 2 numbers: 53147 | |
| /(.*?)(\d*)/no_auto_possess | |
| I have 2 numbers: 53147 | |
| /(.*?)(\d+)/ | |
| I have 2 numbers: 53147 | |
| /(.*)(\d+)$/ | |
| I have 2 numbers: 53147 | |
| /(.*?)(\d+)$/ | |
| I have 2 numbers: 53147 | |
| /(.*)\b(\d+)$/ | |
| I have 2 numbers: 53147 | |
| /(.*\D)(\d+)$/ | |
| I have 2 numbers: 53147 | |
| /^\D*(?!123)/ | |
| ABC123 | |
| /^(\D*)(?=\d)(?!123)/ | |
| ABC445 | |
| \= Expect no match | |
| ABC123 | |
| /^[W-]46]/ | |
| W46]789 | |
| -46]789 | |
| \= Expect no match | |
| Wall | |
| Zebra | |
| 42 | |
| [abcd] | |
| ]abcd[ | |
| #if !ebcdic | |
| /^[W-\]46]/ | |
| W46]789 | |
| Wall | |
| Zebra | |
| Xylophone | |
| 42 | |
| [abcd] | |
| ]abcd[ | |
| \\backslash | |
| \= Expect no match | |
| -46]789 | |
| well | |
| #endif | |
| /\d\d\/\d\d\/\d\d\d\d/ | |
| 01/01/2000 | |
| /word (?:[a-zA-Z0-9]+ ){0,10}otherword/ | |
| word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
| \= Expect no match | |
| word cat dog elephant mussel cow horse canary baboon snake shark | |
| /word (?:[a-zA-Z0-9]+ ){0,300}otherword/ | |
| \= Expect no match | |
| 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 | |
| /^(a){0,0}/ | |
| bcd | |
| abc | |
| aab | |
| /^(a){0,1}/ | |
| bcd | |
| abc | |
| aab | |
| /^(a){0,2}/ | |
| bcd | |
| abc | |
| aab | |
| /^(a){0,3}/ | |
| bcd | |
| abc | |
| aab | |
| aaa | |
| /^(a){0,}/ | |
| bcd | |
| abc | |
| aab | |
| aaa | |
| aaaaaaaa | |
| /^(a){1,1}/ | |
| abc | |
| aab | |
| \= Expect no match | |
| bcd | |
| /^(a){1,2}/ | |
| abc | |
| aab | |
| \= Expect no match | |
| bcd | |
| /^(a){1,3}/ | |
| abc | |
| aab | |
| aaa | |
| \= Expect no match | |
| bcd | |
| /^(a){1,}/ | |
| abc | |
| aab | |
| aaa | |
| aaaaaaaa | |
| \= Expect no match | |
| bcd | |
| /.*\.gif/ | |
| borfle\nbib.gif\nno | |
| /.{0,}\.gif/ | |
| borfle\nbib.gif\nno | |
| /.*\.gif/m | |
| borfle\nbib.gif\nno | |
| /.*\.gif/s | |
| borfle\nbib.gif\nno | |
| /.*\.gif/ms | |
| borfle\nbib.gif\nno | |
| /.*$/ | |
| borfle\nbib.gif\nno | |
| /.*$/m | |
| borfle\nbib.gif\nno | |
| /.*$/s | |
| borfle\nbib.gif\nno | |
| /.*$/ms | |
| borfle\nbib.gif\nno | |
| /.*$/ | |
| borfle\nbib.gif\nno\n | |
| /.*$/m | |
| borfle\nbib.gif\nno\n | |
| /.*$/s | |
| borfle\nbib.gif\nno\n | |
| /.*$/ms | |
| borfle\nbib.gif\nno\n | |
| /(.*X|^B)/ | |
| abcde\n1234Xyz | |
| BarFoo | |
| \= Expect no match | |
| abcde\nBar | |
| /(.*X|^B)/m | |
| abcde\n1234Xyz | |
| BarFoo | |
| abcde\nBar | |
| /(.*X|^B)/s | |
| abcde\n1234Xyz | |
| BarFoo | |
| \= Expect no match | |
| abcde\nBar | |
| /(.*X|^B)/ms | |
| abcde\n1234Xyz | |
| BarFoo | |
| abcde\nBar | |
| /(?s)(.*X|^B)/ | |
| abcde\n1234Xyz | |
| BarFoo | |
| \= Expect no match | |
| abcde\nBar | |
| /(?s:.*X|^B)/ | |
| abcde\n1234Xyz | |
| BarFoo | |
| \= Expect no match | |
| abcde\nBar | |
| /^.*B/ | |
| \= Expect no match | |
| abc\nB | |
| /(?s)^.*B/ | |
| abc\nB | |
| /(?m)^.*B/ | |
| abc\nB | |
| /(?ms)^.*B/ | |
| abc\nB | |
| /(?ms)^B/ | |
| abc\nB | |
| /(?s)B$/ | |
| B\n | |
| /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ | |
| 123456654321 | |
| /^\d\d\d\d\d\d\d\d\d\d\d\d/ | |
| 123456654321 | |
| /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ | |
| 123456654321 | |
| /^[abc]{12}/ | |
| abcabcabcabc | |
| /^[a-c]{12}/ | |
| abcabcabcabc | |
| /^(a|b|c){12}/ | |
| abcabcabcabc | |
| /^[abcdefghijklmnopqrstuvwxy0123456789]/ | |
| n | |
| \= Expect no match | |
| z | |
| /abcde{0,0}/ | |
| abcd | |
| \= Expect no match | |
| abce | |
| /ab[cd]{0,0}e/ | |
| abe | |
| \= Expect no match | |
| abcde | |
| /ab(c){0,0}d/ | |
| abd | |
| \= Expect no match | |
| abcd | |
| /a(b*)/ | |
| a | |
| ab | |
| abbbb | |
| \= Expect no match | |
| bbbbb | |
| /ab\d{0}e/ | |
| abe | |
| \= Expect no match | |
| ab1e | |
| /"([^\\"]+|\\.)*"/ | |
| the \"quick\" brown fox | |
| \"the \\\"quick\\\" brown fox\" | |
| /.*?/g,aftertext | |
| abc | |
| /\b/g,aftertext | |
| abc | |
| /\b/g,aftertext | |
| abc | |
| //g | |
| abc | |
| /<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 | |
| <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> | |
| /a[^a]b/ | |
| acb | |
| a\nb | |
| /a.b/ | |
| acb | |
| \= Expect no match | |
| a\nb | |
| /a[^a]b/s | |
| acb | |
| a\nb | |
| /a.b/s | |
| acb | |
| a\nb | |
| /^(b+?|a){1,2}?c/ | |
| bac | |
| bbac | |
| bbbac | |
| bbbbac | |
| bbbbbac | |
| /^(b+|a){1,2}?c/ | |
| bac | |
| bbac | |
| bbbac | |
| bbbbac | |
| bbbbbac | |
| /(?!\A)x/m | |
| a\bx\n | |
| \= Expect no match | |
| x\nb\n | |
| /\x0{ab}/ | |
| \0{ab} | |
| /(A|B)*?CD/ | |
| CD | |
| /(A|B)*CD/ | |
| CD | |
| /(?<!bar)foo/ | |
| foo | |
| catfood | |
| arfootle | |
| rfoosh | |
| \= Expect no match | |
| barfoo | |
| towbarfoo | |
| /\w{3}(?<!bar)foo/ | |
| catfood | |
| \= Expect no match | |
| foo | |
| barfoo | |
| towbarfoo | |
| /(?<=(foo)a)bar/ | |
| fooabar | |
| \= Expect no match | |
| bar | |
| foobbar | |
| /\Aabc\z/m | |
| abc | |
| \= Expect no match | |
| abc\n | |
| qqq\nabc | |
| abc\nzzz | |
| qqq\nabc\nzzz | |
| "(?>.*/)foo" | |
| \= Expect no match | |
| /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ | |
| "(?>.*/)foo" | |
| /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo | |
| /(?>(\.\d\d[1-9]?))\d+/ | |
| 1.230003938 | |
| 1.875000282 | |
| \= Expect no match | |
| 1.235 | |
| /^((?>\w+)|(?>\s+))*$/ | |
| now is the time for all good men to come to the aid of the party | |
| \= Expect no match | |
| this is not a line with only words and spaces! | |
| /(\d+)(\w)/ | |
| 12345a | |
| 12345+ | |
| /((?>\d+))(\w)/ | |
| 12345a | |
| \= Expect no match | |
| 12345+ | |
| /(?>a+)b/ | |
| aaab | |
| /((?>a+)b)/ | |
| aaab | |
| /(?>(a+))b/ | |
| aaab | |
| /(?>b)+/ | |
| aaabbbccc | |
| /(?>a+|b+|c+)*c/ | |
| aaabbbbccccd | |
| /(a+|b+|c+)*c/ | |
| aaabbbbccccd | |
| /((?>[^()]+)|\([^()]*\))+/ | |
| ((abc(ade)ufh()()x | |
| /\(((?>[^()]+)|\([^()]+\))+\)/ | |
| (abc) | |
| (abc(def)xyz) | |
| \= Expect no match | |
| ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /a(?-i)b/i | |
| ab | |
| Ab | |
| \= Expect no match | |
| aB | |
| AB | |
| /(a (?x)b c)d e/ | |
| a bcd e | |
| \= Expect no match | |
| a b cd e | |
| abcd e | |
| a bcde | |
| /(a b(?x)c d (?-x)e f)/ | |
| a bcde f | |
| \= Expect no match | |
| abcdef | |
| /(a(?i)b)c/ | |
| abc | |
| aBc | |
| \= Expect no match | |
| abC | |
| aBC | |
| Abc | |
| ABc | |
| ABC | |
| AbC | |
| /a(?i:b)c/ | |
| abc | |
| aBc | |
| \= Expect no match | |
| ABC | |
| abC | |
| aBC | |
| /a(?i:b)*c/ | |
| aBc | |
| aBBc | |
| \= Expect no match | |
| aBC | |
| aBBC | |
| /a(?=b(?i)c)\w\wd/ | |
| abcd | |
| abCd | |
| \= Expect no match | |
| aBCd | |
| abcD | |
| /(?s-i:more.*than).*million/i | |
| more than million | |
| more than MILLION | |
| more \n than Million | |
| \= Expect no match | |
| MORE THAN MILLION | |
| more \n than \n million | |
| /(?:(?s-i)more.*than).*million/i | |
| more than million | |
| more than MILLION | |
| more \n than Million | |
| \= Expect no match | |
| MORE THAN MILLION | |
| more \n than \n million | |
| /(?>a(?i)b+)+c/ | |
| abc | |
| aBbc | |
| aBBc | |
| \= Expect no match | |
| Abc | |
| abAb | |
| abbC | |
| /(?=a(?i)b)\w\wc/ | |
| abc | |
| aBc | |
| \= Expect no match | |
| Ab | |
| abC | |
| aBC | |
| /(?<=a(?i)b)(\w\w)c/ | |
| abxxc | |
| aBxxc | |
| \= Expect no match | |
| Abxxc | |
| ABxxc | |
| abxxC | |
| /^(?(?=abc)\w{3}:|\d\d)$/ | |
| abc: | |
| 12 | |
| \= Expect no match | |
| 123 | |
| xyz | |
| /^(?(?!abc)\d\d|\w{3}:)$/ | |
| abc: | |
| 12 | |
| \= Expect no match | |
| 123 | |
| xyz | |
| /(?(?<=foo)bar|cat)/ | |
| foobar | |
| cat | |
| fcat | |
| focat | |
| \= Expect no match | |
| foocat | |
| /(?(?<!foo)cat|bar)/ | |
| foobar | |
| cat | |
| fcat | |
| focat | |
| \= Expect no match | |
| foocat | |
| /(?>a*)*/ | |
| a | |
| aa | |
| aaaa | |
| /(abc|)+/ | |
| abc | |
| abcabc | |
| abcabcabc | |
| xyz | |
| /([a]*)*/ | |
| a | |
| aaaaa | |
| /([ab]*)*/ | |
| a | |
| b | |
| ababab | |
| aaaabcde | |
| bbbb | |
| /([^a]*)*/ | |
| b | |
| bbbb | |
| aaa | |
| /([^ab]*)*/ | |
| cccc | |
| abab | |
| /([a]*?)*/ | |
| a | |
| aaaa | |
| /([ab]*?)*/ | |
| a | |
| b | |
| abab | |
| baba | |
| /([^a]*?)*/ | |
| b | |
| bbbb | |
| aaa | |
| /([^ab]*?)*/ | |
| c | |
| cccc | |
| baba | |
| /(?>a*)*/ | |
| a | |
| aaabcde | |
| /((?>a*))*/ | |
| aaaaa | |
| aabbaa | |
| /((?>a*?))*/ | |
| aaaaa | |
| aabbaa | |
| /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x | |
| 12-sep-98 | |
| 12-09-98 | |
| \= Expect no match | |
| sep-12-98 | |
| /(?i:saturday|sunday)/ | |
| saturday | |
| sunday | |
| Saturday | |
| Sunday | |
| SATURDAY | |
| SUNDAY | |
| SunDay | |
| /(a(?i)bc|BB)x/ | |
| abcx | |
| aBCx | |
| bbx | |
| BBx | |
| \= Expect no match | |
| abcX | |
| aBCX | |
| bbX | |
| BBX | |
| /^([ab](?i)[cd]|[ef])/ | |
| ac | |
| aC | |
| bD | |
| elephant | |
| Europe | |
| frog | |
| France | |
| \= Expect no match | |
| Africa | |
| /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ | |
| ab | |
| aBd | |
| xy | |
| xY | |
| zebra | |
| Zambesi | |
| \= Expect no match | |
| aCD | |
| XY | |
| /(?<=foo\n)^bar/m | |
| foo\nbar | |
| \= Expect no match | |
| bar | |
| baz\nbar | |
| /(?<=(?<!foo)bar)baz/ | |
| barbaz | |
| barbarbaz | |
| koobarbaz | |
| \= Expect no match | |
| baz | |
| foobarbaz | |
| # The following tests are taken from the Perl 5.005 test suite; some of them | |
| # are compatible with 5.004, but I'd rather not have to sort them out. | |
| /abc/ | |
| abc | |
| xabcy | |
| ababc | |
| \= Expect no match | |
| xbc | |
| axc | |
| abx | |
| /ab*c/ | |
| abc | |
| /ab*bc/ | |
| abc | |
| abbc | |
| abbbbc | |
| /.{1}/ | |
| abbbbc | |
| /.{3,4}/ | |
| abbbbc | |
| /ab{0,}bc/ | |
| abbbbc | |
| /ab+bc/ | |
| abbc | |
| \= Expect no match | |
| abc | |
| abq | |
| /ab+bc/ | |
| abbbbc | |
| /ab{1,}bc/ | |
| abbbbc | |
| /ab{1,3}bc/ | |
| abbbbc | |
| /ab{3,4}bc/ | |
| abbbbc | |
| /ab{4,5}bc/ | |
| \= Expect no match | |
| abq | |
| abbbbc | |
| /ab?bc/ | |
| abbc | |
| abc | |
| /ab{0,1}bc/ | |
| abc | |
| /ab?bc/ | |
| /ab?c/ | |
| abc | |
| /ab{0,1}c/ | |
| abc | |
| /^abc$/ | |
| abc | |
| \= Expect no match | |
| abbbbc | |
| abcc | |
| /^abc/ | |
| abcc | |
| /^abc$/ | |
| /abc$/ | |
| aabc | |
| aabc | |
| \= Expect no match | |
| aabcd | |
| /^/ | |
| abc | |
| /$/ | |
| abc | |
| /a.c/ | |
| abc | |
| axc | |
| /a.*c/ | |
| axyzc | |
| /a[bc]d/ | |
| abd | |
| \= Expect no match | |
| axyzd | |
| abc | |
| /a[b-d]e/ | |
| ace | |
| /a[b-d]/ | |
| aac | |
| /a[-b]/ | |
| a- | |
| /a[b-]/ | |
| a- | |
| /a]/ | |
| a] | |
| /a[]]b/ | |
| a]b | |
| /a[^bc]d/ | |
| aed | |
| \= Expect no match | |
| abd | |
| abd | |
| /a[^-b]c/ | |
| adc | |
| /a[^]b]c/ | |
| adc | |
| a-c | |
| \= Expect no match | |
| a]c | |
| /\ba\b/ | |
| a- | |
| -a | |
| -a- | |
| /\by\b/ | |
| \= Expect no match | |
| xy | |
| yz | |
| xyz | |
| /\Ba\B/ | |
| \= Expect no match | |
| a- | |
| -a | |
| -a- | |
| /\By\b/ | |
| xy | |
| /\by\B/ | |
| yz | |
| /\By\B/ | |
| xyz | |
| /\w/ | |
| a | |
| /\W/ | |
| - | |
| \= Expect no match | |
| a | |
| /a\sb/ | |
| a b | |
| /a\Sb/ | |
| a-b | |
| \= Expect no match | |
| a b | |
| /\d/ | |
| 1 | |
| /\D/ | |
| - | |
| \= Expect no match | |
| 1 | |
| /[\w]/ | |
| a | |
| /[\W]/ | |
| - | |
| \= Expect no match | |
| a | |
| /a[\s]b/ | |
| a b | |
| /a[\S]b/ | |
| a-b | |
| \= Expect no match | |
| a b | |
| /[\d]/ | |
| 1 | |
| /[\D]/ | |
| - | |
| \= Expect no match | |
| 1 | |
| /ab|cd/ | |
| abc | |
| abcd | |
| /()ef/ | |
| def | |
| /$b/ | |
| /a\(b/ | |
| a(b | |
| /a\(*b/ | |
| ab | |
| a((b | |
| /a\\b/ | |
| a\\b | |
| \= Expect no match | |
| a\b | |
| /((a))/ | |
| abc | |
| /(a)b(c)/ | |
| abc | |
| /a+b+c/ | |
| aabbabc | |
| /a{1,}b{1,}c/ | |
| aabbabc | |
| /a.+?c/ | |
| abcabc | |
| /(a+|b)*/ | |
| ab | |
| /(a+|b){0,}/ | |
| ab | |
| /(a+|b)+/ | |
| ab | |
| /(a+|b){1,}/ | |
| ab | |
| /(a+|b)?/ | |
| ab | |
| /(a+|b){0,1}/ | |
| ab | |
| /[^ab]*/ | |
| cde | |
| /abc/ | |
| \= Expect no match | |
| b | |
| /a*/ | |
| /([abc])*d/ | |
| abbbcd | |
| /([abc])*bcd/ | |
| abcd | |
| /a|b|c|d|e/ | |
| e | |
| /(a|b|c|d|e)f/ | |
| ef | |
| /abcd*efg/ | |
| abcdefg | |
| /ab*/ | |
| xabyabbbz | |
| xayabbbz | |
| /(ab|cd)e/ | |
| abcde | |
| /[abhgefdc]ij/ | |
| hij | |
| /^(ab|cd)e/ | |
| /(abc|)ef/ | |
| abcdef | |
| /(a|b)c*d/ | |
| abcd | |
| /(ab|ab*)bc/ | |
| abc | |
| /a([bc]*)c*/ | |
| abc | |
| /a([bc]*)(c*d)/ | |
| abcd | |
| /a([bc]+)(c*d)/ | |
| abcd | |
| /a([bc]*)(c+d)/ | |
| abcd | |
| /a[bcd]*dcdcde/ | |
| adcdcde | |
| /a[bcd]+dcdcde/ | |
| \= Expect no match | |
| abcde | |
| adcdcde | |
| /(ab|a)b*c/ | |
| abc | |
| /((a)(b)c)(d)/ | |
| abcd | |
| /[a-zA-Z_][a-zA-Z0-9_]*/ | |
| alpha | |
| /^a(bc+|b[eh])g|.h$/ | |
| abh | |
| /(bc+d$|ef*g.|h?i(j|k))/ | |
| effgz | |
| ij | |
| reffgz | |
| \= Expect no match | |
| effg | |
| bcdd | |
| /((((((((((a))))))))))/ | |
| a | |
| /(((((((((a)))))))))/ | |
| a | |
| /multiple words of text/ | |
| \= Expect no match | |
| aa | |
| uh-uh | |
| /multiple words/ | |
| multiple words, yeah | |
| /(.*)c(.*)/ | |
| abcde | |
| /\((.*), (.*)\)/ | |
| (a, b) | |
| /[k]/ | |
| /abcd/ | |
| abcd | |
| /a(bc)d/ | |
| abcd | |
| /a[-]?c/ | |
| ac | |
| /abc/i | |
| ABC | |
| XABCY | |
| ABABC | |
| \= Expect no match | |
| aaxabxbaxbbx | |
| XBC | |
| AXC | |
| ABX | |
| /ab*c/i | |
| ABC | |
| /ab*bc/i | |
| ABC | |
| ABBC | |
| /ab*?bc/i | |
| ABBBBC | |
| /ab{0,}?bc/i | |
| ABBBBC | |
| /ab+?bc/i | |
| ABBC | |
| /ab+bc/i | |
| \= Expect no match | |
| ABC | |
| ABQ | |
| /ab{1,}bc/i | |
| /ab+bc/i | |
| ABBBBC | |
| /ab{1,}?bc/i | |
| ABBBBC | |
| /ab{1,3}?bc/i | |
| ABBBBC | |
| /ab{3,4}?bc/i | |
| ABBBBC | |
| /ab{4,5}?bc/i | |
| \= Expect no match | |
| ABQ | |
| ABBBBC | |
| /ab??bc/i | |
| ABBC | |
| ABC | |
| /ab{0,1}?bc/i | |
| ABC | |
| /ab??bc/i | |
| /ab??c/i | |
| ABC | |
| /ab{0,1}?c/i | |
| ABC | |
| /^abc$/i | |
| ABC | |
| \= Expect no match | |
| ABBBBC | |
| ABCC | |
| /^abc/i | |
| ABCC | |
| /^abc$/i | |
| /abc$/i | |
| AABC | |
| /^/i | |
| ABC | |
| /$/i | |
| ABC | |
| /a.c/i | |
| ABC | |
| AXC | |
| /a.*?c/i | |
| AXYZC | |
| /a.*c/i | |
| AABC | |
| \= Expect no match | |
| AXYZD | |
| /a[bc]d/i | |
| ABD | |
| /a[b-d]e/i | |
| ACE | |
| \= Expect no match | |
| ABC | |
| ABD | |
| /a[b-d]/i | |
| AAC | |
| /a[-b]/i | |
| A- | |
| /a[b-]/i | |
| A- | |
| /a]/i | |
| A] | |
| /a[]]b/i | |
| A]B | |
| /a[^bc]d/i | |
| AED | |
| /a[^-b]c/i | |
| ADC | |
| \= Expect no match | |
| ABD | |
| A-C | |
| /a[^]b]c/i | |
| ADC | |
| /ab|cd/i | |
| ABC | |
| ABCD | |
| /()ef/i | |
| DEF | |
| /$b/i | |
| \= Expect no match | |
| A]C | |
| B | |
| /a\(b/i | |
| A(B | |
| /a\(*b/i | |
| AB | |
| A((B | |
| /a\\b/i | |
| \= Expect no match | |
| A\=notbol | |
| /((a))/i | |
| ABC | |
| /(a)b(c)/i | |
| ABC | |
| /a+b+c/i | |
| AABBABC | |
| /a{1,}b{1,}c/i | |
| AABBABC | |
| /a.+?c/i | |
| ABCABC | |
| /a.*?c/i | |
| ABCABC | |
| /a.{0,5}?c/i | |
| ABCABC | |
| /(a+|b)*/i | |
| AB | |
| /(a+|b){0,}/i | |
| AB | |
| /(a+|b)+/i | |
| AB | |
| /(a+|b){1,}/i | |
| AB | |
| /(a+|b)?/i | |
| AB | |
| /(a+|b){0,1}/i | |
| AB | |
| /(a+|b){0,1}?/i | |
| AB | |
| /[^ab]*/i | |
| CDE | |
| /abc/i | |
| /a*/i | |
| /([abc])*d/i | |
| ABBBCD | |
| /([abc])*bcd/i | |
| ABCD | |
| /a|b|c|d|e/i | |
| E | |
| /(a|b|c|d|e)f/i | |
| EF | |
| /abcd*efg/i | |
| ABCDEFG | |
| /ab*/i | |
| XABYABBBZ | |
| XAYABBBZ | |
| /(ab|cd)e/i | |
| ABCDE | |
| /[abhgefdc]ij/i | |
| HIJ | |
| /^(ab|cd)e/i | |
| \= Expect no match | |
| ABCDE | |
| /(abc|)ef/i | |
| ABCDEF | |
| /(a|b)c*d/i | |
| ABCD | |
| /(ab|ab*)bc/i | |
| ABC | |
| /a([bc]*)c*/i | |
| ABC | |
| /a([bc]*)(c*d)/i | |
| ABCD | |
| /a([bc]+)(c*d)/i | |
| ABCD | |
| /a([bc]*)(c+d)/i | |
| ABCD | |
| /a[bcd]*dcdcde/i | |
| ADCDCDE | |
| /a[bcd]+dcdcde/i | |
| /(ab|a)b*c/i | |
| ABC | |
| /((a)(b)c)(d)/i | |
| ABCD | |
| /[a-zA-Z_][a-zA-Z0-9_]*/i | |
| ALPHA | |
| /^a(bc+|b[eh])g|.h$/i | |
| ABH | |
| /(bc+d$|ef*g.|h?i(j|k))/i | |
| EFFGZ | |
| IJ | |
| REFFGZ | |
| \= Expect no match | |
| ADCDCDE | |
| EFFG | |
| BCDD | |
| /((((((((((a))))))))))/i | |
| A | |
| /(((((((((a)))))))))/i | |
| A | |
| /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i | |
| A | |
| /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i | |
| C | |
| /multiple words of text/i | |
| \= Expect no match | |
| AA | |
| UH-UH | |
| /multiple words/i | |
| MULTIPLE WORDS, YEAH | |
| /(.*)c(.*)/i | |
| ABCDE | |
| /\((.*), (.*)\)/i | |
| (A, B) | |
| /[k]/i | |
| /abcd/i | |
| ABCD | |
| /a(bc)d/i | |
| ABCD | |
| /a[-]?c/i | |
| AC | |
| /a(?!b)./ | |
| abad | |
| /a(?=d)./ | |
| abad | |
| /a(?=c|d)./ | |
| abad | |
| /a(?:b|c|d)(.)/ | |
| ace | |
| /a(?:b|c|d)*(.)/ | |
| ace | |
| /a(?:b|c|d)+?(.)/ | |
| ace | |
| acdbcdbe | |
| /a(?:b|c|d)+(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){2}(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){4,5}(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){4,5}?(.)/ | |
| acdbcdbe | |
| /((foo)|(bar))*/ | |
| foobar | |
| /a(?:b|c|d){6,7}(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){6,7}?(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){5,6}(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){5,6}?(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){5,7}(.)/ | |
| acdbcdbe | |
| /a(?:b|c|d){5,7}?(.)/ | |
| acdbcdbe | |
| /a(?:b|(c|e){1,2}?|d)+?(.)/ | |
| ace | |
| /^(.+)?B/ | |
| AB | |
| /^([^a-z])|(\^)$/ | |
| . | |
| /^[<>]&/ | |
| <&OUT | |
| /(?:(f)(o)(o)|(b)(a)(r))*/ | |
| foobar | |
| /(?<=a)b/ | |
| ab | |
| \= Expect no match | |
| cb | |
| b | |
| /(?<!c)b/ | |
| ab | |
| b | |
| b | |
| /(?:..)*a/ | |
| aba | |
| /(?:..)*?a/ | |
| aba | |
| /^(){3,5}/ | |
| abc | |
| /^(a+)*ax/ | |
| aax | |
| /^((a|b)+)*ax/ | |
| aax | |
| /^((a|bc)+)*ax/ | |
| aax | |
| /(a|x)*ab/ | |
| cab | |
| /(a)*ab/ | |
| cab | |
| /(?:(?i)a)b/ | |
| ab | |
| /((?i)a)b/ | |
| ab | |
| /(?:(?i)a)b/ | |
| Ab | |
| /((?i)a)b/ | |
| Ab | |
| /(?:(?i)a)b/ | |
| \= Expect no match | |
| cb | |
| aB | |
| /((?i)a)b/ | |
| /(?i:a)b/ | |
| ab | |
| /((?i:a))b/ | |
| ab | |
| /(?i:a)b/ | |
| Ab | |
| /((?i:a))b/ | |
| Ab | |
| /(?i:a)b/ | |
| \= Expect no match | |
| aB | |
| aB | |
| /((?i:a))b/ | |
| /(?:(?-i)a)b/i | |
| ab | |
| /((?-i)a)b/i | |
| ab | |
| /(?:(?-i)a)b/i | |
| aB | |
| /((?-i)a)b/i | |
| aB | |
| /(?:(?-i)a)b/i | |
| aB | |
| \= Expect no match | |
| Ab | |
| /((?-i)a)b/i | |
| /(?:(?-i)a)b/i | |
| aB | |
| /((?-i)a)b/i | |
| aB | |
| /(?:(?-i)a)b/i | |
| \= Expect no match | |
| Ab | |
| AB | |
| /((?-i)a)b/i | |
| /(?-i:a)b/i | |
| ab | |
| /((?-i:a))b/i | |
| ab | |
| /(?-i:a)b/i | |
| aB | |
| /((?-i:a))b/i | |
| aB | |
| /(?-i:a)b/i | |
| \= Expect no match | |
| AB | |
| Ab | |
| /((?-i:a))b/i | |
| /(?-i:a)b/i | |
| aB | |
| /((?-i:a))b/i | |
| aB | |
| /(?-i:a)b/i | |
| \= Expect no match | |
| Ab | |
| AB | |
| /((?-i:a))b/i | |
| /((?-i:a.))b/i | |
| \= Expect no match | |
| AB | |
| a\nB | |
| /((?s-i:a.))b/i | |
| a\nB | |
| /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ | |
| cabbbb | |
| /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ | |
| caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | |
| /foo\w*\d{4}baz/ | |
| foobar1234baz | |
| /x(~~)*(?:(?:F)?)?/ | |
| x~~ | |
| /^a(?#xxx){3}c/ | |
| aaac | |
| /^a (?#xxx) (?#yyy) {3}c/x | |
| aaac | |
| /(?<![cd])b/ | |
| \= Expect no match | |
| B\nB | |
| dbcb | |
| /(?<![cd])[ab]/ | |
| dbaacb | |
| /(?<!(c|d))b/ | |
| /(?<!(c|d))[ab]/ | |
| dbaacb | |
| /(?<!cd)[ab]/ | |
| cdaccb | |
| /^(?:a?b?)*$/ | |
| \= Expect no match | |
| dbcb | |
| a-- | |
| /((?s)^a(.))((?m)^b$)/ | |
| a\nb\nc\n | |
| /((?m)^b$)/ | |
| a\nb\nc\n | |
| /(?m)^b/ | |
| a\nb\n | |
| /(?m)^(b)/ | |
| a\nb\n | |
| /((?m)^b)/ | |
| a\nb\n | |
| /\n((?m)^b)/ | |
| a\nb\n | |
| /((?s).)c(?!.)/ | |
| a\nb\nc\n | |
| a\nb\nc\n | |
| /((?s)b.)c(?!.)/ | |
| a\nb\nc\n | |
| a\nb\nc\n | |
| /^b/ | |
| /()^b/ | |
| \= Expect no match | |
| a\nb\nc\n | |
| a\nb\nc\n | |
| /((?m)^b)/ | |
| a\nb\nc\n | |
| /(?(?!a)a|b)/ | |
| /(?(?!a)b|a)/ | |
| a | |
| /(?(?=a)b|a)/ | |
| \= Expect no match | |
| a | |
| a | |
| /(?(?=a)a|b)/ | |
| a | |
| /(\w+:)+/ | |
| one: | |
| /$(?<=^(a))/ | |
| a | |
| /([\w:]+::)?(\w+)$/ | |
| abcd | |
| xy:z:::abcd | |
| /^[^bcd]*(c+)/ | |
| aexycd | |
| /(a*)b+/ | |
| caab | |
| /([\w:]+::)?(\w+)$/ | |
| abcd | |
| xy:z:::abcd | |
| \= Expect no match | |
| abcd: | |
| abcd: | |
| /^[^bcd]*(c+)/ | |
| aexycd | |
| /(>a+)ab/ | |
| /(?>a+)b/ | |
| aaab | |
| /([[:]+)/ | |
| a:[b]: | |
| /([[=]+)/ | |
| a=[b]= | |
| /([[.]+)/ | |
| a.[b]. | |
| /((?>a+)b)/ | |
| aaab | |
| /(?>(a+))b/ | |
| aaab | |
| /((?>[^()]+)|\([^()]*\))+/ | |
| ((abc(ade)ufh()()x | |
| /a\Z/ | |
| \= Expect no match | |
| aaab | |
| a\nb\n | |
| /b\Z/ | |
| a\nb\n | |
| /b\z/ | |
| /b\Z/ | |
| a\nb | |
| /b\z/ | |
| a\nb | |
| /(?>.*)(?<=(abcd|wxyz))/ | |
| alphabetabcd | |
| endingwxyz | |
| \= Expect no match | |
| a rather long string that doesn't end with one of them | |
| /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ | |
| word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
| \= Expect no match | |
| word cat dog elephant mussel cow horse canary baboon snake shark | |
| /word (?>[a-zA-Z0-9]+ ){0,30}otherword/ | |
| \= Expect no match | |
| 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 | |
| /(?<=\d{3}(?!999))foo/ | |
| 999foo | |
| 123999foo | |
| \= Expect no match | |
| 123abcfoo | |
| /(?<=(?!...999)\d{3})foo/ | |
| 999foo | |
| 123999foo | |
| \= Expect no match | |
| 123abcfoo | |
| /(?<=\d{3}(?!999)...)foo/ | |
| 123abcfoo | |
| 123456foo | |
| \= Expect no match | |
| 123999foo | |
| /(?<=\d{3}...)(?<!999)foo/ | |
| 123abcfoo | |
| 123456foo | |
| \= Expect no match | |
| 123999foo | |
| /((Z)+|A)*/ | |
| ZABCDEFG | |
| /(Z()|A)*/ | |
| ZABCDEFG | |
| /(Z(())|A)*/ | |
| ZABCDEFG | |
| /((?>Z)+|A)*/ | |
| ZABCDEFG | |
| /((?>)+|A)*/ | |
| ZABCDEFG | |
| /a*/g | |
| abbab | |
| /[[:space:]]+/ | |
| > \x09\x0a\x0c\x0d\x0b< | |
| /[[:blank:]]+/ | |
| > \x09\x0a\x0c\x0d\x0b< | |
| /[\s]+/ | |
| > \x09\x0a\x0c\x0d\x0b< | |
| /\s+/ | |
| > \x09\x0a\x0c\x0d\x0b< | |
| /ab/x | |
| ab | |
| /(?!\A)x/m | |
| a\nxb\n | |
| /(?!^)x/m | |
| \= Expect no match | |
| a\nxb\n | |
| /abc\Qabc\Eabc/ | |
| abcabcabc | |
| /abc\Q(*+|\Eabc/ | |
| abc(*+|abc | |
| / abc\Q abc\Eabc/x | |
| abc abcabc | |
| \= Expect no match | |
| abcabcabc | |
| /abc#comment | |
| \Q#not comment | |
| literal\E/x | |
| abc#not comment\n literal | |
| /abc#comment | |
| \Q#not comment | |
| literal/x | |
| abc#not comment\n literal | |
| /abc#comment | |
| \Q#not comment | |
| literal\E #more comment | |
| /x | |
| abc#not comment\n literal | |
| /abc#comment | |
| \Q#not comment | |
| literal\E #more comment/x | |
| abc#not comment\n literal | |
| /\Qabc\$xyz\E/ | |
| abc\\\$xyz | |
| /\Qabc\E\$\Qxyz\E/ | |
| abc\$xyz | |
| /\Gabc/ | |
| abc | |
| \= Expect no match | |
| xyzabc | |
| /\Gabc./g | |
| abc1abc2xyzabc3 | |
| /abc./g | |
| abc1abc2xyzabc3 | |
| /a(?x: b c )d/ | |
| XabcdY | |
| \= Expect no match | |
| Xa b c d Y | |
| /((?x)x y z | a b c)/ | |
| XabcY | |
| AxyzB | |
| /(?i)AB(?-i)C/ | |
| XabCY | |
| \= Expect no match | |
| XabcY | |
| /((?i)AB(?-i)C|D)E/ | |
| abCE | |
| DE | |
| \= Expect no match | |
| abcE | |
| abCe | |
| dE | |
| De | |
| /[z\Qa-d]\E]/ | |
| z | |
| a | |
| - | |
| d | |
| ] | |
| \= Expect no match | |
| b | |
| /(a+)*b/ | |
| \= Expect no match | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /(?i)reg(?:ul(?:[aä]|ae)r|ex)/ | |
| REGular | |
| regulaer | |
| Regex | |
| regulär | |
| #if !ebcdic | |
| /Åæåä[à-ÿÀ-ß]+/ | |
| Åæåäà | |
| Åæåäÿ | |
| ÅæåäÀ | |
| Åæåäß | |
| #endif | |
| /(?<=Z)X./ | |
| \x84XAZXB | |
| /^(?(2)a|(1)(2))+$/ | |
| 123a | |
| /(?<=a|bbbb)c/ | |
| ac | |
| bbbbc | |
| /line\nbreak/ | |
| this is a line\nbreak | |
| line one\nthis is a line\nbreak in the second line | |
| /line\nbreak/firstline | |
| this is a line\nbreak | |
| \= Expect no match | |
| line one\nthis is a line\nbreak in the second line | |
| /line\nbreak/m,firstline | |
| this is a line\nbreak | |
| \= Expect no match | |
| line one\nthis is a line\nbreak in the second line | |
| /1234/ | |
| 123\=ps | |
| \= Expect no match | |
| a4\=ps,dfa_restart | |
| /1234/ | |
| 123\=ps | |
| 4\=ps,dfa_restart | |
| /^/gm | |
| a\nb\nc\n | |
| \ | |
| /(?<=C\n)^/gm | |
| A\nC\nC\n | |
| /(?s)A?B/ | |
| AB | |
| aB | |
| /(?s)A*B/ | |
| AB | |
| aB | |
| /(?m)A?B/ | |
| AB | |
| aB | |
| /(?m)A*B/ | |
| AB | |
| aB | |
| #if !ebcdic | |
| /Content-Type\x3A[^\r\n]{6,}/ | |
| Content-Type:xxxxxyyy | |
| /Content-Type\x3A[^\r\n]{6,}z/ | |
| Content-Type:xxxxxyyyz | |
| /Content-Type\x3A[^a]{6,}/ | |
| Content-Type:xxxyyy | |
| /Content-Type\x3A[^a]{6,}z/ | |
| Content-Type:xxxyyyz | |
| #endif | |
| /^abc/Im,newline=lf | |
| xyz\nabc | |
| xyz\r\nabc | |
| \= Expect no match | |
| xyz\rabc | |
| xyzabc\r | |
| xyzabc\rpqr | |
| xyzabc\r\n | |
| xyzabc\r\npqr | |
| /^abc/Im,newline=crlf | |
| xyz\r\nabclf> | |
| \= Expect no match | |
| xyz\nabclf | |
| xyz\rabclf | |
| /^abc/Im,newline=cr | |
| xyz\rabc | |
| \= Expect no match | |
| xyz\nabc | |
| xyz\r\nabc | |
| /.*/I,newline=lf | |
| abc\ndef | |
| abc\rdef | |
| abc\r\ndef | |
| /.*/I,newline=cr | |
| abc\ndef | |
| abc\rdef | |
| abc\r\ndef | |
| /.*/I,newline=crlf | |
| abc\ndef | |
| abc\rdef | |
| abc\r\ndef | |
| /\w+(.)(.)?def/Is | |
| abc\ndef | |
| abc\rdef | |
| abc\r\ndef | |
| /\w+(.)(.)?def/s | |
| abc\ndef | |
| abc\rdef | |
| abc\r\ndef | |
| /^\w+=.*(\\\n.*)*/ | |
| abc=xyz\\\npqr | |
| /^(a()*)*/ | |
| aaaa | |
| /^(?:a(?:(?:))*)*/ | |
| aaaa | |
| /^(a()+)+/ | |
| aaaa | |
| /^(?:a(?:(?:))+)+/ | |
| aaaa | |
| /(a|)*\d/ | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
| \= Expect no match | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /(?>a|)*\d/ | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
| \= Expect no match | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /(?:a|)*\d/ | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
| \= Expect no match | |
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
| /^a.b/newline=lf | |
| a\rb | |
| \= Expect no match | |
| a\nb | |
| /^a.b/newline=cr | |
| a\nb | |
| \= Expect no match | |
| a\rb | |
| /^a.b/newline=anycrlf | |
| a\x85b | |
| \= Expect no match | |
| a\rb | |
| /^a.b/newline=any | |
| \= Expect no match | |
| a\nb | |
| a\rb | |
| a\x85b | |
| /^abc./gmx,newline=any | |
| abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK | |
| /abc.$/gmx,newline=any | |
| abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 | |
| /^a\Rb/bsr=unicode | |
| a\nb | |
| a\rb | |
| a\r\nb | |
| a\x0bb | |
| a\x0cb | |
| a\x85b | |
| \= Expect no match | |
| a\n\rb | |
| /^a\R*b/bsr=unicode | |
| ab | |
| a\nb | |
| a\rb | |
| a\r\nb | |
| a\x0bb | |
| a\x0cb | |
| a\x85b | |
| a\n\rb | |
| a\n\r\x85\x0cb | |
| /^a\R+b/bsr=unicode | |
| a\nb | |
| a\rb | |
| a\r\nb | |
| a\x0bb | |
| a\x0cb | |
| a\x85b | |
| a\n\rb | |
| a\n\r\x85\x0cb | |
| \= Expect no match | |
| ab | |
| /^a\R{1,3}b/bsr=unicode | |
| a\nb | |
| a\n\rb | |
| a\n\r\x85b | |
| a\r\n\r\nb | |
| a\r\n\r\n\r\nb | |
| a\n\r\n\rb | |
| a\n\n\r\nb | |
| \= Expect no match | |
| a\n\n\n\rb | |
| a\r | |
| /.+foo/ | |
| afoo | |
| \= Expect no match | |
| \r\nfoo | |
| \nfoo | |
| /.+foo/newline=crlf | |
| afoo | |
| \nfoo | |
| \= Expect no match | |
| \r\nfoo | |
| /.+foo/newline=any | |
| afoo | |
| \= Expect no match | |
| \nfoo | |
| \r\nfoo | |
| /.+foo/s | |
| afoo | |
| \r\nfoo | |
| \nfoo | |
| /^$/gm,newline=any | |
| abc\r\rxyz | |
| abc\n\rxyz | |
| \= Expect no match | |
| abc\r\nxyz | |
| /^X/m | |
| XABC | |
| \= Expect no match | |
| XABC\=notbol | |
| /(?m)^$/g,newline=any,aftertext | |
| abc\r\n\r\n | |
| /(?m)^$|^\r\n/g,newline=any,aftertext | |
| abc\r\n\r\n | |
| /(?m)$/g,newline=any,aftertext | |
| abc\r\n\r\n | |
| /(?|(abc)|(xyz))/ | |
| >abc< | |
| >xyz< | |
| /(x)(?|(abc)|(xyz))(x)/ | |
| xabcx | |
| xxyzx | |
| /(x)(?|(abc)(pqr)|(xyz))(x)/ | |
| xabcpqrx | |
| xxyzx | |
| /(?|(abc)|(xyz))(?1)/ | |
| abcabc | |
| xyzabc | |
| \= Expect no match | |
| xyzxyz | |
| /\H\h\V\v/ | |
| X X\x0a | |
| X\x09X\x0b | |
| \= Expect no match | |
| \xa0 X\x0a | |
| /\H*\h+\V?\v{3,4}/ | |
| \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a | |
| \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a | |
| \x09\x20\xa0\x0a\x0b\x0c | |
| \= Expect no match | |
| \x09\x20\xa0\x0a\x0b | |
| /\H{3,4}/ | |
| XY ABCDE | |
| XY PQR ST | |
| /.\h{3,4}./ | |
| XY AB PQRS | |
| /\h*X\h?\H+Y\H?Z/ | |
| >XNNNYZ | |
| > X NYQZ | |
| \= Expect no match | |
| >XYZ | |
| > X NY Z | |
| #if !ebcdic | |
| /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ | |
| >XY\x0aZ\x0aA\x0bNN\x0c | |
| >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c | |
| #endif | |
| /.+A/newline=crlf | |
| \= Expect no match | |
| \r\nA | |
| /\nA/newline=crlf | |
| \r\nA | |
| /[\r\n]A/newline=crlf | |
| \r\nA | |
| /(\r|\n)A/newline=crlf | |
| \r\nA | |
| /a\Rb/I,bsr=anycrlf | |
| a\rb | |
| a\nb | |
| a\r\nb | |
| \= Expect no match | |
| a\x85b | |
| a\x0bb | |
| /a\Rb/I,bsr=unicode | |
| a\rb | |
| a\nb | |
| a\r\nb | |
| a\x85b | |
| a\x0bb | |
| /a\R?b/I,bsr=anycrlf | |
| a\rb | |
| a\nb | |
| a\r\nb | |
| \= Expect no match | |
| a\x85b | |
| a\x0bb | |
| /a\R?b/I,bsr=unicode | |
| a\rb | |
| a\nb | |
| a\r\nb | |
| a\x85b | |
| a\x0bb | |
| /a\R{2,4}b/I,bsr=anycrlf | |
| a\r\n\nb | |
| a\n\r\rb | |
| a\r\n\r\n\r\n\r\nb | |
| \= Expect no match | |
| a\x0b\x0bb | |
| a\x85\x85b | |
| /a\R{2,4}b/I,bsr=unicode | |
| a\r\rb | |
| a\n\n\nb | |
| a\r\n\n\r\rb | |
| a\x85\x85b | |
| a\x0b\x0bb | |
| \= Expect no match | |
| a\r\r\r\r\rb | |
| /a(?!)|\wbc/ | |
| abc | |
| /a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames | |
| \= Expect no match | |
| ab | |
| /a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames | |
| \= Expect no match | |
| ab | |
| /a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames | |
| ab | |
| /a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames | |
| aXb | |
| a\nb | |
| \= Expect no match | |
| ab | |
| /a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames | |
| aXb | |
| a\nX\nXb | |
| \= Expect no match | |
| ab | |
| /X$/dollar_endonly | |
| X | |
| \= Expect no match | |
| X\n | |
| /X$/ | |
| X | |
| X\n | |
| /xyz/auto_callout | |
| xyz | |
| abcxyz | |
| \= Expect no match | |
| abc | |
| abcxypqr | |
| /xyz/auto_callout,no_start_optimize | |
| abcxyz | |
| \= Expect no match | |
| abc | |
| abcxypqr | |
| /(*NO_START_OPT)xyz/auto_callout | |
| abcxyz | |
| /(?C)ab/ | |
| ab | |
| ab\=callout_none | |
| /ab/auto_callout | |
| ab | |
| ab\=callout_none | |
| /^"((?(?=[a])[^"])|b)*"$/auto_callout | |
| "ab" | |
| "ab"\=callout_none | |
| /\d+X|9+Y/ | |
| ++++123999\=ps | |
| ++++123999Y\=ps | |
| /Z(*F)/ | |
| \= Expect no match | |
| Z\=ps | |
| ZA\=ps | |
| /Z(?!)/ | |
| \= Expect no match | |
| Z\=ps | |
| ZA\=ps | |
| /dog(sbody)?/ | |
| dogs\=ps | |
| dogs\=ph | |
| /dog(sbody)??/ | |
| dogs\=ps | |
| dogs\=ph | |
| /dog|dogsbody/ | |
| dogs\=ps | |
| dogs\=ph | |
| /dogsbody|dog/ | |
| dogs\=ps | |
| dogs\=ph | |
| /Z(*F)Q|ZXY/ | |
| Z\=ps | |
| XY\=dfa_restart | |
| \= Expect no match | |
| ZA\=ps | |
| X\=ps | |
| /Z(?:(*F)Q|XY)/ | |
| Z\=ps | |
| XY\=dfa_restart | |
| /Z(*F)Q|Z(*F)XY/ | |
| \= Expect no match | |
| Z\=ps | |
| /\bthe cat\b/ | |
| the cat\=ps | |
| the cat\=ph | |
| /dog(sbody)?/ | |
| dogs\=ps | |
| body\=dfa_restart | |
| /dog(sbody)?/ | |
| dogs\=ph | |
| body\=dfa_restart | |
| /abc/ | |
| abc\=ps | |
| abc\=ph | |
| /abc\K123/ | |
| xyzabc123pqr | |
| /(?<=abc)123/allusedtext | |
| xyzabc123pqr | |
| xyzabc12\=ps | |
| xyzabc12\=ph | |
| /\babc\b/allusedtext | |
| +++abc+++ | |
| +++ab\=ps | |
| +++ab\=ph | |
| /(?=C)/g,aftertext | |
| ABCDECBA | |
| /(abc|def|xyz)/I | |
| terhjk;abcdaadsfe | |
| the quick xyz brown fox | |
| \= Expect no match | |
| thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd | |
| /(abc|def|xyz)/I,no_start_optimize | |
| terhjk;abcdaadsfe | |
| the quick xyz brown fox | |
| \= Expect no match | |
| thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd | |
| /abcd*/aftertext | |
| xxxxabcd\=ps | |
| xxxxabcd\=ph | |
| dddxxx\=dfa_restart | |
| xxxxabcd\=ph | |
| xxx\=dfa_restart | |
| /abcd*/i | |
| xxxxabcd\=ps | |
| xxxxabcd\=ph | |
| XXXXABCD\=ps | |
| XXXXABCD\=ph | |
| /abc\d*/ | |
| xxxxabc1\=ps | |
| xxxxabc1\=ph | |
| /abc[de]*/ | |
| xxxxabcde\=ps | |
| xxxxabcde\=ph | |
| /(?:(?1)|B)(A(*F)|C)/ | |
| ABCD | |
| CCD | |
| \= Expect no match | |
| CAD | |
| /^(?:(?1)|B)(A(*F)|C)/ | |
| CCD | |
| BCD | |
| \= Expect no match | |
| ABCD | |
| CAD | |
| BAD | |
| /^(?!a(*SKIP)b)/ | |
| ac | |
| /^(?=a(*SKIP)b|ac)/ | |
| ac | |
| /^(?=a(*THEN)b|ac)/ | |
| ac | |
| /^(?=a(*PRUNE)b)/ | |
| ab | |
| /^(?(?!a(*SKIP)b))/ | |
| ac | |
| /(?<=abc)def/allusedtext | |
| abc\=ph | |
| /abc$/ | |
| abc | |
| abc\=ps | |
| abc\=ph | |
| /abc$/m | |
| abc | |
| abc\n | |
| abc\=ph | |
| abc\n\=ph | |
| abc\=ps | |
| abc\n\=ps | |
| /abc\z/ | |
| abc | |
| abc\=ps | |
| abc\=ph | |
| /abc\Z/ | |
| abc | |
| abc\=ps | |
| abc\=ph | |
| /abc\b/ | |
| abc | |
| abc\=ps | |
| abc\=ph | |
| /abc\B/ | |
| abc\=ps | |
| abc\=ph | |
| \= Expect no match | |
| abc | |
| /.+/ | |
| abc\=offset=0 | |
| abc\=offset=1 | |
| abc\=offset=2 | |
| \= Bad offsets | |
| abc\=offset=4 | |
| abc\=offset=-4 | |
| \= Expect no match | |
| abc\=offset=3 | |
| /^(?:a)++\w/ | |
| aaaab | |
| \= Expect no match | |
| aaaa | |
| bbb | |
| /^(?:aa|(?:a)++\w)/ | |
| aaaab | |
| aaaa | |
| \= Expect no match | |
| bbb | |
| /^(?:a)*+\w/ | |
| aaaab | |
| bbb | |
| \= Expect no match | |
| aaaa | |
| /^(a)++\w/ | |
| aaaab | |
| \= Expect no match | |
| aaaa | |
| bbb | |
| /^(a|)++\w/ | |
| aaaab | |
| \= Expect no match | |
| aaaa | |
| bbb | |
| /(?=abc){3}abc/aftertext | |
| abcabcabc | |
| \= Expect no match | |
| xyz | |
| /(?=abc)+abc/aftertext | |
| abcabcabc | |
| \= Expect no match | |
| xyz | |
| /(?=abc)++abc/aftertext | |
| abcabcabc | |
| \= Expect no match | |
| xyz | |
| /(?=abc){0}xyz/ | |
| xyz | |
| /(?=abc){1}xyz/ | |
| \= Expect no match | |
| xyz | |
| /(?=(a))?./ | |
| ab | |
| bc | |
| /(?=(a))??./ | |
| ab | |
| bc | |
| /^(?=(a)){0}b(?1)/ | |
| backgammon | |
| /^(?=(?1))?[az]([abc])d/ | |
| abd | |
| zcdxx | |
| /^(?!a){0}\w+/ | |
| aaaaa | |
| /(?<=(abc))?xyz/ | |
| abcxyz | |
| pqrxyz | |
| /((?2))((?1))/ | |
| abc | |
| /(?(R)a+|(?R)b)/ | |
| aaaabcde | |
| /(?(R)a+|((?R))b)/ | |
| aaaabcde | |
| /((?(R)a+|(?1)b))/ | |
| aaaabcde | |
| /((?(R2)a+|(?1)b))()/ | |
| aaaabcde | |
| /(?(R)a*(?1)|((?R))b)/ | |
| aaaabcde | |
| /(a+)/no_auto_possess | |
| aaaa\=ovector=3 | |
| aaaa\=ovector=4 | |
| /^\R/ | |
| \r\=ps | |
| \r\=ph | |
| /^\R{2,3}x/ | |
| \r\=ps | |
| \r\=ph | |
| \r\r\=ps | |
| \r\r\=ph | |
| \r\r\r\=ps | |
| \r\r\r\=ph | |
| \r\rx | |
| \r\r\rx | |
| /^\R{2,3}?x/ | |
| \r\=ps | |
| \r\=ph | |
| \r\r\=ps | |
| \r\r\=ph | |
| \r\r\r\=ps | |
| \r\r\r\=ph | |
| \r\rx | |
| \r\r\rx | |
| /^\R?x/ | |
| \r\=ps | |
| \r\=ph | |
| x | |
| \rx | |
| /^\R+x/ | |
| \r\=ps | |
| \r\=ph | |
| \r\n\=ps | |
| \r\n\=ph | |
| \rx | |
| /^a$/newline=crlf | |
| a\r\=ps | |
| a\r\=ph | |
| /^a$/m,newline=crlf | |
| a\r\=ps | |
| a\r\=ph | |
| /^(a$|a\r)/newline=crlf | |
| a\r\=ps | |
| a\r\=ph | |
| /^(a$|a\r)/m,newline=crlf | |
| a\r\=ps | |
| a\r\=ph | |
| /./newline=crlf | |
| \r\=ps | |
| \r\=ph | |
| /.{2,3}/newline=crlf | |
| \r\=ps | |
| \r\=ph | |
| \r\r\=ps | |
| \r\r\=ph | |
| \r\r\r\=ps | |
| \r\r\r\=ph | |
| /.{2,3}?/newline=crlf | |
| \r\=ps | |
| \r\=ph | |
| \r\r\=ps | |
| \r\r\=ph | |
| \r\r\r\=ps | |
| \r\r\r\=ph | |
| # Test simple validity check for restarts | |
| /abcdef/ | |
| abc\=dfa_restart | |
| /<H((?(?!<H|F>)(.)|(?R))++)*F>/ | |
| text <H more text <H texting more hexA0-"\xA0" hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text. | |
| /^(?>.{4})abc|^\w\w.xabcd/ | |
| xxxxabcd | |
| xx\xa0xabcd | |
| /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/ | |
| xxxxxxxxabcd | |
| xx\xa0xxxxxabcd | |
| /abcd/ | |
| abcd\=ovector=0 | |
| # These tests show up auto-possessification | |
| /[ab]*/ | |
| aaaa | |
| /[ab]*?/ | |
| aaaa | |
| /[ab]?/ | |
| aaaa | |
| /[ab]??/ | |
| aaaa | |
| /[ab]+/ | |
| aaaa | |
| /[ab]+?/ | |
| aaaa | |
| /[ab]{2,3}/ | |
| aaaa | |
| /[ab]{2,3}?/ | |
| aaaa | |
| /[ab]{2,}/ | |
| aaaa | |
| /[ab]{2,}?/ | |
| aaaa | |
| '\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++' | |
| NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
| '\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++' | |
| NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
| /abc(?=xyz)/allusedtext | |
| abcxyzpqr | |
| abcxyzpqr\=aftertext | |
| /(?<=pqr)abc(?=xyz)/allusedtext | |
| xyzpqrabcxyzpqr | |
| xyzpqrabcxyzpqr\=aftertext | |
| /a\b/ | |
| a.\=allusedtext | |
| a\=allusedtext | |
| /abc(?=abcde)(?=ab)/allusedtext | |
| abcabcdefg | |
| /a*?b*?/ | |
| ab | |
| /(*NOTEMPTY)a*?b*?/ | |
| ab | |
| ba | |
| cb | |
| /(*NOTEMPTY_ATSTART)a*?b*?/aftertext | |
| ab | |
| cdab | |
| /(a)(b)|(c)/ | |
| XcX\=ovector=2,get=1,get=2,get=3,get=4,getall | |
| /(?<A>aa)/ | |
| aa\=get=A | |
| aa\=copy=A | |
| /a+/no_auto_possess | |
| a\=ovector=2,get=1,get=2,getall | |
| aaa\=ovector=2,get=1,get=2,getall | |
| /a(b)c(d)/ | |
| abc\=ph,copy=0,copy=1,getall | |
| /ab(?C" any text with spaces ")cde/B | |
| abcde | |
| 12abcde | |
| /^a(b)c(?C1)def/ | |
| abcdef | |
| /^a(b)c(?C"AB")def/ | |
| abcdef | |
| /^a(b)c(?C1)def/ | |
| abcdef\=callout_capture | |
| /^a(b)c(?C{AB})def/B | |
| abcdef\=callout_capture | |
| /^(?(?C25)(?=abc)abcd|xyz)/B | |
| abcdefg | |
| xyz123 | |
| /^(?(?C$abc$)(?=abc)abcd|xyz)/B | |
| abcdefg | |
| xyz123 | |
| /^ab(?C'first')cd(?C"second")ef/ | |
| abcdefg | |
| /(?:a(?C`code`)){3}X/ | |
| aaaXY | |
| # Binary zero in callout string | |
| /"a(?C'x" 00 "z')b"/hex | |
| abcdefgh | |
| /(?(?!)a|b)/ | |
| bbb | |
| \= Expect no match | |
| aaa | |
| /^/gm | |
| \n\n\n | |
| /^/gm,alt_circumflex | |
| \n\n\n | |
| /abc/use_offset_limit | |
| 1234abcde\=offset_limit=100 | |
| 1234abcde\=offset_limit=4294967294 | |
| 1234abcde\=offset_limit=4294967294,offset=4 | |
| 1234abcde\=offset_limit=9 | |
| 1234abcde\=offset_limit=4 | |
| 1234abcde\=offset_limit=4,offset=4 | |
| \= Expect no match | |
| 1234abcde\=offset_limit=4,offset=5 | |
| 1234abcde\=offset_limit=3 | |
| /(?<=abc)/use_offset_limit | |
| 1234abc\=offset_limit=7 | |
| \= Expect no match | |
| 1234abc\=offset_limit=6 | |
| /abcd/null_context | |
| abcd\=null_context | |
| /()()a+/no_auto_possess | |
| aaa\=allcaptures | |
| a\=allcaptures | |
| /(*LIMIT_DEPTH=100)^((.)(?1)|.)$/ | |
| \= Expect depth limit exceeded | |
| a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00] | |
| /(*LIMIT_HEAP=0)^((.)(?1)|.)$/ | |
| \= Expect heap limit exceeded | |
| a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00] | |
| /(*LIMIT_HEAP=50000)^((.)(?1)|.)$/ | |
| \= Expect success | |
| a[00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00] | |
| /(02-)?[0-9]{3}-[0-9]{3}/ | |
| 02-123-123 | |
| /^(a(?2))(b)(?1)/ | |
| abbab\=find_limits | |
| /abc/endanchored | |
| xyzabc | |
| \= Expect no match | |
| xyzabcdef | |
| \= Expect error | |
| xyzabc\=ph | |
| /abc/ | |
| xyzabc\=endanchored | |
| \= Expect no match | |
| xyzabcdef\=endanchored | |
| \= Expect error | |
| xyzabc\=ps,endanchored | |
| /abc|bcd/endanchored | |
| xyzabcd | |
| \= Expect no match | |
| xyzabcdef | |
| /(*NUL)^.*/ | |
| a\nb\x00ccc | |
| /(*NUL)^.*/s | |
| a\nb\x00ccc | |
| /^x/m,newline=nul | |
| ab\x00xy | |
| /'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex | |
| x\nyz | |
| /(*NUL)^X\NY/ | |
| X\nY | |
| X\rY | |
| \= Expect no match | |
| X\x00Y | |
| /(?<=abc|)/ | |
| abcde\=aftertext | |
| /(?<=|abc)/ | |
| abcde\=aftertext | |
| /(?<=abc|)/endanchored | |
| abcde\=aftertext | |
| /(?<=|abc)/endanchored | |
| abcde\=aftertext | |
| /(*LIMIT_MATCH=100).*(?![|H]?.*(?![|H]?););.*(?![|H]?.*(?![|H]?););\x00\x00\x00\x00\x00\x00\x00(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?![|);)?.*(![|H]?);)?.*(?![|H]?);)?.*(?![|H]?);)?.*(?![|H]););![|H]?););[|H]?);|H]?);)\x00\x00\x00\x00\x00\x00H]?););?![|H]?);)?.*(?![|H]?););[||H]?);)?.*(?![|H]?););[|H]?);(?![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););;[\x00\x00\x00\x00\x00\x00\x00![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););/no_dotstar_anchor | |
| \= Expect limit exceeded | |
| .*(?![|H]?.*(?![|H]?););.*(?![|H]?.*(?![|H]?););\x00\x00\x00\x00\x00\x00\x00(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?!(?![|);)?.*(![|H]?);)?.*(?![|H]?);)?.*(?![|H]?);)?.*(?![|H]););![|H]?););[|H]?);|H]?);)\x00\x00\x00\x00\x00\x00H]?););?![|H]?);)?.*(?![|H]?););[||H]?);)?.*(?![|H]?););[|H]?);(?![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?););;[\x00\x00\x00\x00\x00\x00\x00![|H]?););![|H]?););[|H]?);|H]?);)?.*(?![|H]?);); | |
| /\n/firstline | |
| xyz\nabc | |
| /\nabc/firstline | |
| xyz\nabc | |
| /\x{0a}abc/firstline,newline=crlf | |
| \= Expect no match | |
| xyz\r\nabc | |
| /[abc]/firstline | |
| \= Expect no match | |
| \na | |
| /foobar/ | |
| the foobar thing\=copy_matched_subject | |
| the foobar thing\=copy_matched_subject,zero_terminate | |
| /foobar/g | |
| the foobar thing foobar again\=copy_matched_subject | |
| /(?(VERSION>=0)^B0W)/ | |
| B0W-W0W | |
| \= Expect no match | |
| 0 | |
| /(?(VERSION>=1000)^B0W|W0W)/ | |
| B0W-W0W | |
| \= Expect no match | |
| 0 | |
| /(?<=pqr)abc(?=xyz)/ | |
| 123pqrabcxy\=ps,allusedtext | |
| 123pqrabcxyz\=ps,allusedtext | |
| /(?>a+b)/ | |
| aaaa\=ps | |
| aaaab\=ps | |
| /(abc)(?1)/ | |
| abca\=ps | |
| abcabc\=ps | |
| /(?(?=abc).*|Z)/ | |
| ab\=ps | |
| abcxyz\=ps | |
| /(abc)++x/ | |
| abcab\=ps | |
| abc\=ps | |
| ab\=ps | |
| abcx | |
| /\z/ | |
| abc\=ph | |
| abc\=ps | |
| /\Z/ | |
| abc\=ph | |
| abc\=ps | |
| abc\n\=ph | |
| abc\n\=ps | |
| /c*+(?<=[bc])/ | |
| abc\=ph | |
| ab\=ph | |
| abc\=ps | |
| ab\=ps | |
| /c++(?<=[bc])/ | |
| abc\=ph | |
| ab\=ph | |
| /(?<=(?=.(?<=x)))/ | |
| abx | |
| ab\=ph | |
| bxyz | |
| xyz | |
| /(?![ab]).*/ | |
| ab\=ph | |
| /c*+/ | |
| ab\=ph,offset=2 | |
| / | |
| /anchored, firstline | |
| \x0a | |
| / | |
| /anchored,firstline,no_start_optimize | |
| \x0a | |
| / | |
| /firstline | |
| \x0a | |
| abc\x0adef | |
| /|a(?0)/endanchored | |
| aaaa | |
| /([a-z]++)(*scs:(1).)/ | |
| aa | |
| # -------------- | |
| # EXTENDED CHARACTER CLASSES (UTS#18) | |
| /[a[]/ | |
| [ | |
| /[a[B]]C/alt_extended_class | |
| aC | |
| BC | |
| \= Expect no match | |
| [C | |
| /[[A][B]]/alt_extended_class | |
| A | |
| B | |
| \= Expect no match | |
| [ | |
| ] | |
| /[[A]||[B]]/alt_extended_class | |
| A | |
| B | |
| \= Expect no match | |
| C | |
| /[[^A][B]]/alt_extended_class | |
| B | |
| C | |
| \= Expect no match | |
| A | |
| /[^[A][B]]/alt_extended_class | |
| C | |
| \= Expect no match | |
| A | |
| B | |
| /[^[A]&&[B]]/alt_extended_class | |
| A | |
| B | |
| C | |
| /[A[]]]/alt_extended_class | |
| A | |
| ] | |
| \= Expect no match | |
| [ | |
| /[A[^]]]/alt_extended_class | |
| A | |
| [ | |
| C | |
| \= Expect no match | |
| ] | |
| /[A[]]/alt_extended_class,allow_empty_class | |
| A | |
| \= Expect no match | |
| ] | |
| [ | |
| /[A[^]]/alt_extended_class,allow_empty_class | |
| A | |
| C | |
| [ | |
| ] | |
| /[A-C--B]/alt_extended_class | |
| A | |
| C | |
| \= Expect no match | |
| B | |
| /[^A-C--B]/alt_extended_class | |
| B | |
| \= Expect no match | |
| A | |
| C | |
| /[[\d\D]--b]/alt_extended_class | |
| a | |
| c | |
| \= Expect no match | |
| b | |
| /[\dAC-E[:space:]&&[^z]]/alt_extended_class | |
| 0 | |
| A | |
| C | |
| D | |
| E | |
| \t | |
| \= Expect no match | |
| B | |
| F | |
| ; | |
| /[z||[^\dAC-E[:space:]]]/alt_extended_class | |
| z | |
| B | |
| F | |
| ; | |
| \= Expect no match | |
| 0 | |
| A | |
| C | |
| D | |
| E | |
| \t | |
| /[a-c--b]+/alt_extended_class | |
| ac | |
| a | |
| \= Expect no match | |
| b | |
| /[a-c--b]{2,3}/alt_extended_class | |
| ac | |
| cac | |
| \= Expect no match | |
| a | |
| bb | |
| /x[a-c--b]+y/alt_extended_class | |
| xacy | |
| xaay | |
| xay | |
| \= Expect no match | |
| zacy | |
| xacz | |
| xy | |
| xby | |
| # -------------- | |
| # EXTENDED CHARACTER CLASSES (Perl) | |
| /(?[[A]+[B]])/ | |
| A | |
| B | |
| \= Expect no match | |
| [ | |
| ] | |
| # -------------- | |
| /^(?1(2))(?(DEFINE)(a(.)b))/ | |
| axb | |
| # Tests for reading matches from NULL subjects | |
| /(.?)/ | |
| \=null_subject,copy=0,get=0,getall | |
| # -------------- | |
| # Verify pcre2_substitute is blocked for DFA | |
| /abc/ | |
| abc\=replace=xyz | |
| abc\=replace=xyz,substitute_matched | |
| # -------------- | |
| # Test workspace resizing and workspace re-use | |
| /(*LIMIT_HEAP=4)(?=(?=(?=(?=(?=(?=(?=(?=a))(?R)))))))./ | |
| a\=dfa | |
| # Whole-pattern recursion must preserve alternative match lengths. | |
| /(?:b(?R)a|a+)/ | |
| baa | |
| baaa | |
| # End of testinput6 |