/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x 1: ab c 0: *** Failers 0: abc 0: ab cde / abc\Q abc\Eabc/x 1: abc abcabc 0: *** Failers 0: abcabcabc / /g 0: abc /"([^\\"]+|\\.)*"/ 0: the \"quick\" brown fox 0: \"the \\\"quick\\\" brown fox\" /$(?<=^(a))/ 1: a /$/ 1: abc /$/i 1: ABC /$b/ /$b/i 0: *** Failers 0: A]C 0: B /( \( )? [^()]+ (?(1) \) ) /x 1: abcd 1: (abcd) 1: the quick (abcd) fox 1: (abcd /( \( )? [^()]+ (?(1) \) |) /x 1: abcd 1: (abcd) 1: the quick (abcd) fox 1: (abcd /((((((((((a))))))))))/ 1: a /((((((((((a))))))))))/i 1: A /((((((((((a))))))))))\10/ 1: aa /((((((((((a))))))))))\10/i 1: AA /(((((((((a)))))))))/ 1: a /(((((((((a)))))))))/i 1: A /((.*))\d+\1/ 1: abc123abc 1: abc123bc /((?-i)a)b/i /((?-i:a))b/i 1: aB /((?-i:a.))b/i 0: *** Failers 0: AB 0: a\nB /((?>)+|A)*/ 1: ZABCDEFG /((?>Z)+|A)*/ 1: ZABCDEFG /((?>[^()]+)|\([^()]*\))+/ 1: ((abc(ade)ufh()()x /((?>\d+))(\w)/ 1: 12345a 0: *** Failers 0: 12345+ /((?>a*?))*/ 1: a 1: aaaaa 1: 1: a 1: b 1: ababab 1: aaaabcde 1: bbbb 1: 1: b 1: bbbb 1: aaa 1: 1: cccc 1: abab 1: 1: a 1: aaaa 1: 1: a 1: b 1: abab 1: baba 1: 1: b 1: bbbb 1: aaa 1: 1: c 1: cccc 1: baba 1: 1: a 1: aaabcde 1: 1: aaaaa 1: aabbaa 1: 1: aaaaa 1: aabbaa /((?>a+)b)/ 1: aaab /((?i)AB(?-i)C|D)E/ 1: abCE 1: DE 0: *** Failers 0: abcE 0: abCe 0: dE 0: De /((?i)a)b/ /((?i)blah)\s+(?i:\1)/ 1: blah blah 1: BLAH BLAH 1: Blah Blah 1: blaH blaH 1: blah BLAH 1: Blah blah 1: blaH blah /((?i)blah)\s+\1/ 1: blah blah 1: BLAH BLAH 1: Blah Blah 1: blaH blaH 0: *** Failers 0: blah BLAH 0: Blah blah 0: blaH blah /((?i:a))b/ /((?m)^b$)/ 0: a\nb\nc\n /((?m)^b)/ 0: a\nb\nc\n /((?s).)c(?!.)/ 0: a\nb\nc\n 0: a\nb\nc\n /((?s)^a(.))((?m)^b$)/ 0: a\nb\nc\n /((?s)b.)c(?!.)/ 0: a\nb\nc\n 0: a\nb\nc\n /((?s-i:a.))b/i 0: a\nB /((?x)x y z | a b c)/ 1: XabcY 1: AxyzB /((Z)+|A)*/ 1: ZABCDEFG /(([a-c])b*?\2)*/ 1: ababbbcbc /(([a-c])b*?\2){3}/ 1: ababbbcbc /((\3|b)\2(a)){2,}/ 1: bbaababbabaaaaabbaaaabba /((\3|b)\2(a)x)+/ 1: aaaxabaxbaaxbbax /((a)(b)c)(d)/ 1: abcd /((a)(b)c)(d)/i 1: ABCD /((a))/ 1: abc /((a))/i 1: ABC /((foo)|(bar))*/ 1: foobar /()(?(1)b|a)/ /()?(?(1)a|b)/ 1: a /()?(?(1)b|a)/ 1: a /()^b/ 0: *** Failers 0: a\nb\nc\n 0: a\nb\nc\n /()ef/ 1: def /()ef/i 1: DEF /(.*)(\d*)/ 1: I have 2 numbers: 53147 /(.*)(\d+)$/ 1: I have 2 numbers: 53147 /(.*)\b(\d+)$/ 1: I have 2 numbers: 53147 /(.*)\d+\1/ 1: abc123abc 1: abc123bc /(.*)\d+\1/s 1: abc123abc 1: abc123bc /(.*)c(.*)/ 1: abcde /(.*)c(.*)/i 1: ABCDE /(.*?)(\d*)/ 1: I have 2 numbers: 53147 1: 1: I have 2 numbers: 53147 /(.*?)(\d+)$/ 1: I have 2 numbers: 53147 /(.*?)(\d+)/ 1: I have 2 numbers: 53147 /(.*X|^B)/ 1: abcde\n1234Xyz 1: BarFoo 0: *** Failers 0: abcde\nBar /(.*X|^B)/m 1: abcde\n1234Xyz 1: BarFoo 0: abcde\nBar /(.*X|^B)/ms 1: abcde\n1234Xyz 1: BarFoo 0: abcde\nBar /(.*X|^B)/s 1: abcde\n1234Xyz 1: BarFoo 0: *** Failers 0: abcde\nBar /(.*\D)(\d+)$/ 1: I have 2 numbers: 53147 /(>a+)ab/ /(?!\A)x/m 1: nxb\n /(?!^)abc/ 1: the abc 0: *** Failers 0: abc /(?!^)x/m 1: nxb\n /(?(?!a)b|a)/ 1: a /(?(?(\.\d\d[1-9]?))\d+/ 1: 1.230003938 1: 1.875000282 0: *** Failers 0: 1.235 /(?>(a+))b/ 1: aaab /(?>.*)(?<=(abcd|wxyz))/ 1: alphabetabcd 1: endingwxyz 0: *** Failers 0: a rather long string that doesn't end with one of them /(?>a*)*/ 1: a 1: aa 1: aaaa /(?>a+)b/ 1: aaab /(?>a+|b+|c+)*c/ 1: aaabbbbccccd /(?>b)+/ 1: aaabbbccc /(?i)AB(?-i)C/ 1: XabCY 0: *** Failers 0: XabcY /(?i)reg(?:ul(?:[aä]|ae)r|ex)/ 1: REGular 1: regulaer 1: Regex 1: regulär /(?i:a)b/ 0: *** Failers 0: aB 0: aB /(?i:saturday|sunday)/ 1: saturday 1: sunday 1: Saturday 1: Sunday 1: SATURDAY 1: SUNDAY 1: SunDay /(?m)^(b)/ 0: a\nb\n /(?m)^b/ 0: a\nb\n /(?ms)^.*B/ 1: abc\nB 0: 1: abc\nB /(?ms)^B/ 0: abc\nB /(?s)(.*X|^B)/ 1: abcde\n1234Xyz 1: BarFoo 0: *** Failers 0: abcde\nBar /(?s)B$/ 0: B\n /(?s)^.*B/ 0: **** Failers 1: abc\nB 0: 1: abc\nB /(?s)a.b/ 0: a\nb /(?s-i:more.*than).*million/i 1: more than million 1: more than MILLION 1: more \n than Million 0: *** Failers 0: MORE THAN MILLION 1: more \n than \n million /(?s:.*X|^B)/ 1: abcde\n1234Xyz 1: BarFoo 0: *** Failers 0: abcde\nBar /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ 1: ab c 0: *** Failers 0: abc 0: ab cde /(AB)*?\1/ 1: ABABAB /(AB)*\1/ 1: ABABAB /(A|B)*?CD/ 1: CD /(A|B)*CD/ 1: CD /(Z(())|A)*/ 1: ZABCDEFG /(Z()|A)*/ 1: ZABCDEFG /([[.]+)/ 1: a.[b]. /([[:]+)/ 1: a:[b]: /([[=]+)/ 1: a=[b]= /([\da-f:]+)$/i 1: 0abc 1: abc 1: fed 1: E 1: :: 1: 5f03:12C0::932e 1: fed def 1: Any old stuff 0: *** Failers 0: 0zzz 0: gzzz 1: fed\x20 0: Any old rubbish /([\w:]+::)?(\w+)$/ 1: abcd 1: xy:z:::abcd 1: *** Failers 0: abcd: 0: abcd: /([^.]*)\.([^:]*):[T ]+(.*)/ 1: track1.title:TBlah blah blah /([^.]*)\.([^:]*):[T ]+(.*)/i 1: track1.title:TBlah blah blah /([^.]*)\.([^:]*):[t ]+(.*)/i 1: track1.title:TBlah blah blah /([a-c]*)\1/ 1: abcabc /([a-c]*)\1/i 1: ABCABC /([abc])*bcd/ 1: abcd /([abc])*bcd/i 1: ABCD /([abc])*d/ 1: abbbcd /([abc])*d/i 1: ABBBCD /(\.\d\d((?=0)|\d(?=\d)))/ 1: 1.230003938 1: 1.875000282 0: 1.235 0: 1: 1.230003938 1: 1.875000282 0: *** Failers 0: 1.235 /(\d+)(\w)/ 1: 12345a 1: 12345+ /(\w+:)+/ 1: one: /(a b(?x)c d (?-x)e f)/ 0: ab 0: Ab 0: *** Failers 0: aB 0: AB 0: 0: a bcd e 0: *** Failers 0: a b cd e 0: abcd e 0: a bcde 0: 1: a bcde f 0: *** Failers 0: abcdef /(a(?i)b)c/ 1: abc 1: aBc 0: *** Failers 0: abC 0: aBC 0: Abc 0: ABc 0: ABC 0: AbC /(a(?i)bc|BB)x/ 1: abcx 1: aBCx 1: bbx 1: BBx 0: *** Failers 0: abcX 0: aBCX 0: bbX 0: BBX /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/ 1: abcdefghijkllS /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ 0: abcdefghijk\12S /(a)*ab/ 1: cab /(a)\1{8,}/ 1: aaaaaaaaa 1: aaaaaaaaaa 0: *** Failers 0: aaaaaaa /(a)b(c)/ 1: abc /(a)b(c)/i 1: ABC /(a)|\1/ 1: a 1: *** Failers 1: ab 0: x /(a*)b+/ 1: caab /(a+)*b/ 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa /(a+|b)*/ 1: ab /(a+|b)*/i 1: AB /(a+|b)+/ 1: ab /(a+|b)+/i 1: AB /(a+|b)?/ 1: ab /(a+|b)?/i 1: AB /(a+|b){0,1}/ 1: ab /(a+|b){0,1}/i 1: AB /(a+|b){0,1}?/i 1: AB /(a+|b){0,}/ 1: ab /(a+|b){0,}/i 1: AB /(a+|b){1,}/ 1: ab /(a+|b){1,}/i 1: AB /(ab)\d\1/i 1: Ab4ab 1: ab4Ab /(abc)[\1]de/ 0: abc\1de /(abc)\1/ 1: abcabc /(abc)\1/i 1: ABCABC /(abc)\123/ 0: abc\x53 /(abc)\223/ 0: abc\x93 /(abc)\323/ 0: abc\xd3 /(abc|)+/ 1: abc 1: abcabc 1: abcabcabc 1: xyz /(abc|)ef/ 1: abcdef /(abc|)ef/i 1: ABCDEF /(ab|a)b*c/ 1: abc /(ab|a)b*c/i 1: ABC /(ab|ab*)bc/ 1: abc /(ab|ab*)bc/i 1: ABC /(ab|cd)e/ 1: abcde /(ab|cd)e/i 1: ABCDE /(a|(bc)){0,0}?xyz/ 1: xyz /(a|b)c*d/ 1: abcd /(a|b)c*d/i 1: ABCD /(a|b|c|d|e)f/ 1: ef /(a|b|c|d|e)f/i 1: EF /(a|x)*ab/ 1: cab /(bc+d$|ef*g.|h?i(j|k))/ 1: effgz 1: ij 1: reffgz 0: *** Failers 0: effg 0: bcdd /(bc+d$|ef*g.|h?i(j|k))/i 1: EFFGZ 1: IJ 1: REFFGZ 0: *** Failers 0: ADCDCDE 0: EFFG 0: BCDD /(cat(a(ract|tonic)|erpillar)) \1()2(3)/ /(x)?(?(1)a|b)/ 0: *** Failers 0: a 0: a /(x)?(?(1)b|a)/ 1: a /.*$/ 1: borfle\nbib.gif\nno\n /.*$/m 1: borfle\nbib.gif\nno\n /.*$/ms 1: borfle\nbib.gif\nno\n /.*$/s 1: borfle\nbib.gif\nno\n /.*?/g+ 1: abc /.*\.gif/ 1: borfle\nbib.gif\nno /.*\.gif/m 1: borfle\nbib.gif\nno /.*\.gif/ms 1: borfle\nbib.gif\nno /.*\.gif/s 1: borfle\nbib.gif\nno /.{0,}\.gif/ 1: borfle\nbib.gif\nno /.{1}/ 1: abbbbc /.{3,4}/ 1: abbbbc /:/ 1: Well, we need a colon: somewhere 0: *** Fail if we don't /A\x0{2,3}Z/ 0: The A\x0\x0Z 0: An A\0\x0\0Z 0: *** Failers 0: A\0Z 0: A\0\x0\0\x0Z /P[^*]TAIRE[^*]{1,6}?LL/ 1: xxxxxxxxxxxPSTAIREISLLxxxxxxxxx /P[^*]TAIRE[^*]{1,}?LL/ 1: xxxxxxxxxxxPSTAIREISLLxxxxxxxxx /The quick brown fox/i 1: the quick brown fox 1: The quick brown FOX 1: What do you know about the quick brown fox? 1: What do you know about THE QUICK BROWN FOX? /[-az]+/ 1: az- 1: *** Failers 0: b /[\D]/ 1: - 1: *** Failers 1: - 0: 1 /[\W]/ 1: - 1: *** Failers 1: - 0: a /[\d-]+/ 1: 12-34 0: *** Failers 0: aaa /[\d-z]+/ 1: 12-34z 0: *** Failers 0: aaa /[\d]/ 1: 1 /[\w]/ 1: a /[\z\C]/ 1: z 1: C /[^a]+/i 1: AAAaAbc 0: 1: AAAaAbc /[^a]/ 1: aaaabcd 1: aaAabcd /[^a]/i 1: aaaabcd 1: aaAabcd /[^ab]*/ 1: cde /[^ab]*/i 1: CDE /[^az]/ 1: aaaabcd 1: aaAabcd /[^az]/i 1: aaaabcd 1: aaAabcd /[^k]{2,3}$/ 1: bbb\nccc 0: 1: abc 1: *** Failers 1: abk 0: 1: abc 1: kbc 1: kabc 1: *** Failers 0: abk 0: akb 0: akk /[a-zA-Z_][a-zA-Z0-9_]*/ 1: alpha /[a-zA-Z_][a-zA-Z0-9_]*/i 1: ALPHA /[a-z]+/ 1: abcdxyz /[a\-z]+/ 1: a-z 1: *** Failers 0: b /[abhgefdc]ij/ 1: hij /[abhgefdc]ij/i 1: HIJ /[az-]+/ 1: za- 1: *** Failers 0: b /[k]/i /[z\Qa-d]\E]/ 1: z 1: a 1: - 1: d 1: ] 1: *** Failers 0: b /\((.*), (.*)\)/ 1: (a, b) /\((.*), (.*)\)/i 1: (A, B) /\0*/ 1: \0\0\0\0 /\A(.)*\Z/m 1: *** Failers 1: abc\ndef /\A(.)*\Z/s 1: abc\ndef /\A(abc|def)=(\1){2,3}\Z/ 1: abc=abcabc 1: def=defdefdef 0: *** Failers 0: abc=defdef /\Aabc\Z/m 1: abc 0: abc\n 0: *** Failers 0: qqq\nabc 0: abc\nzzz 0: qqq\nabc\nzzz /\Aabc\z/m 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo /\Ba\B/ 1: *** Failers 0: a- 0: -a 0: -a- /\By\B/ 1: xyz /\By\b/ 1: xy /\D/ 1: - 1: *** Failers 1: - 0: 1 /\Gabc./g 1: abc1abc2xyzabc3 /\Gabc/ 1: abc 0: *** Failers 0: xyzabc /\M/ 1: M /\Qabc\$xyz\E/ 0: abc\\\$xyz /\Qabc\E\$\Qxyz\E/ 0: abc\$xyz /\W/ 1: - 1: *** Failers 1: - 0: a /\b(foo)\s+(\w+)/i 0: ab 0: 1: Food is on the foo table /\b/+g 1: abc /\b/g+ 1: abc /\ba\b/ 1: a- 1: -a 1: -a- /\by\B/ 1: yz /\by\b/ 0: *** Failers 0: xy 0: yz 0: xyz /\d/ 1: 1 /\d\d\/\d\d\/\d\d\d\d/ 1: 01/01/2000 /\n((?m)^b)/ 0: a\nb\n /\w+(?=\t)/ 0: the quick brown\t fox /\w/ 1: a /\w{3}(?\w+)|(?>\s+))*$/ 1: now is the time for all good men to come to the aid of the party 0: *** Failers 0: this is not a line with only words and spaces! /^((a|b)+)*ax/ 1: aax /^((a|bc)+)*ax/ 1: aax /^(){3,5}/ 1: abc /^(.+)?B/ 1: AB /^(?!(ab)de|x)(abd)(f)/ 1: abdf /^(?(2)a|(1)(2))+$/ 1: 12 1: 12a 1: 12aa 0: *** Failers 0: 1234 /^(?(?!abc)\d\d|\w{3}:)$/ 1: abc: 1: 12 0: *** Failers 0: 123 0: xyz /^(?(?=abc)\w{3}:|\d\d)$/ 1: abc: 1: 12 0: *** Failers 0: 123 0: xyz /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ 1: abcdefhijklm /^(?:a?b?)*$/ 0: *** Failers 0: dbcb 0: a-- /^(?:b|a(?=(.)))*\1/ 1: abc /^(?=(a+?))\1ab/ 0: *** Failers 0: aaab 0: aaab /^(?=(ab(cd)))(ab)/ 1: abcd /^(?=ab(de))(abd)(e)/ 1: abde /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/ 1: a 1: abc 1: a-b 0: 0-9 1: a.b 0: 5.6.7 1: the.quick.brown.fox 0: a100.b200.300c 0: 12-ab.1245 0: *** Failers 0: \ 0: .a 0: -a 0: a- 0: a. 0: a_b 0: a.- 0: a.. 0: ab..bc 0: the.quick.brown.fox- 0: the.quick.brown.fox. 0: the.quick.brown.fox_ 0: the.quick.brown.fox+ /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ 1: abc!pqr=apquxz.ixr.zzz.ac.uk 0: *** Failers 0: !pqr=apquxz.ixr.zzz.ac.uk 0: abc!=apquxz.ixr.zzz.ac.uk 0: abc!pqr=apquxz:ixr.zzz.ac.uk 0: abc!pqr=apquxz.ixr.zzz.ac.ukk /^([^a-z])|(\^)$/ 1: . /^([^a])([^\b])([^c]*)([^d]{3,4})/ 1: baNOTccccd 1: baNOTcccd 1: baNOTccd 1: bacccd 1: *** Failers 0: anything 1: b\bc 0: baccd /^([ab](?i)[cd]|[ef])/ 1: ac 1: aC 1: bD 1: elephant 1: Europe 1: frog 1: France 0: *** Failers 0: Africa /^(\()?blah(?(1)(\)))$/ 1: (blah) 1: blah 0: *** Failers 0: a 0: blah) 0: (blah /^(\(+)?blah(?(1)(\)))$/ 1: (blah) 1: blah 0: *** Failers 0: blah) 0: (blah /^(\D*)(?=\d)(?!123)/ 0: ABC123 0: 1: ABC445 0: *** Failers 0: ABC123 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 1: 1 IN SOA non-sp1 non-sp2( 1: 1 IN SOA non-sp1 non-sp2 ( 0: *** Failers 0: 1IN SOA non-sp1 non-sp2( /^(a(?(1)\1)){4}$/ 1: aaaaaaaaaa 0: *** Failers 0: aaaaaaaaa 0: aaaaaaaaaaa /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ 1: abcdefhijklm /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ 1: abcdefghijkcda2 1: abcdefghijkkkkcda2 /^(a)?(?(1)a|b)+$/ 1: aa 1: b 0: bb 0: *** Failers 0: ab /^(a)\1{2,3}(.)/ 1: aaab 1: aaaab 1: aaaaab 1: aaaaaab /^(a){0,0}/ 1: bcd 1: abc 1: aab /^(a){0,1}/ 1: bcd 1: abc 1: aab /^(a){0,2}/ 1: bcd 1: abc 1: aab /^(a){0,3}/ 1: bcd 1: abc 1: aab 1: aaa /^(a){0,}/ 1: bcd 1: abc 1: aab 1: aaa 1: aaaaaaaa /^(a){1,1}/ 0: bcd 1: abc 1: aab /^(a){1,2}/ 0: bcd 1: abc 1: aab /^(a){1,3}/ 0: bcd 1: abc 1: aab 1: aaa /^(a){1,}/ 0: bcd 1: abc 1: aab 1: aaa 1: aaaaaaaa /^(a+)*ax/ 1: aax /^(a\1?)(a\1?)(a\2?)(a\3?)$/ 0: a 0: aa 0: aaa 1: aaaa 1: aaaaa 1: aaaaaa 1: aaaaaaa 0: aaaaaaaa 0: aaaaaaaaa 1: aaaaaaaaaa 0: aaaaaaaaaaa 0: aaaaaaaaaaaa 0: aaaaaaaaaaaaa 0: aaaaaaaaaaaaaa 0: aaaaaaaaaaaaaaa 0: aaaaaaaaaaaaaaaa /^(a\1?){4}$/ 1: aaaaaaaaaa 0: *** Failers 0: AB 0: aaaaaaaaa 0: aaaaaaaaaaa /^(abc){1,2}zz/ 1: abczz 1: abcabczz 0: *** Failers 0: zz 0: abcabcabczz 0: >>abczz /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ 1: ab 1: aBd 1: xy 1: xY 1: zebra 1: Zambesi 0: *** Failers 0: aCD 0: XY /^(ab|cd)e/ /^(ab|cd)e/i 0: ABCDE /^(a|)\1*b/ 1: ab 1: aaaab 1: b 0: *** Failers 0: acb /^(a|)\1+b/ 1: aab 1: aaaab 1: b 0: *** Failers 0: ab /^(a|)\1?b/ 1: ab 1: aab 1: b 0: *** Failers 0: acb /^(a|)\1{2,3}b/ 1: aaab 1: aaaab 1: b 0: *** Failers 0: ab 0: aab 0: aaaaab /^(a|)\1{2}b/ 1: aaab 1: b 0: *** Failers 0: ab 0: aab 0: aaaab /^(a|b|c){12}/ 1: abcabcabcabc /^(b*|ba){1,2}?bc/ 1: babc 1: bbabc 1: bababc 0: *** Failers 0: bababbc 0: babababc /^(b+?|a){1,2}?c/ 1: bac 1: bbac 1: bbbac 1: bbbbac 1: bbbbbac /^(b+|a){1,2}?bc/ 1: bbc /^(b+|a){1,2}?c/ 1: bac 1: bbac 1: bbbac 1: bbbbac 1: bbbbbac /^(b+|a){1,2}c/ 1: bc 1: bbc 1: bbbc 1: bac 1: bbac 1: aac 1: abbbbbbbbbbbc 1: bbbbbbbbbbbac 0: *** Failers 0: aaac 0: abbbbbbbbbbbac /^(ba|b*){1,2}?bc/ 1: babc 1: bbabc 1: bababc 0: *** Failers 0: bababbc 0: babababc /^(cow|)\1(bell)/ 1: cowcowbell 1: bell 0: *** Failers 0: cowbell /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ 1: .1.2.3 1: A.12.123.0 0: *** Failers 0: .1.2.3333 0: 1.2.3 0: 1234.2.3 /^.*nter/ 1: enter 1: inter 1: uponter /^.+?[0-9][0-9][0-9]$/ 1: x123 1: xx123 1: 123456 0: *** Failers 0: 123 1: x1234 /^.+[0-9][0-9][0-9]$/ 1: x123 1: xx123 1: 123456 0: *** Failers 0: 123 1: x1234 /^/ 1: abc /^/i 1: ABC /^12.34/s 0: 12\n34 0: 12\r34 /^1234 #comment in extended re /x 1: 1234 /^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]/ 1: 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/ 1: From abcd Mon Sep 01 12:33:02 1997 1: From abcd Mon Sep 1 12:33:02 1997 0: *** Failers 0: From abcd Sep 01 12:33:02 1997 /^[.^$|()*+?{,}]+/ 1: .^\$(*+)|{?,?} /^[0-9]+$/ 1: 0 1: 1 1: 2 1: 3 1: 4 1: 5 1: 6 1: 7 1: 8 1: 9 1: 10 1: 100 0: *** Failers 0: abc /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ 1: 123456654321 /^[<>]&/ 1: <&OUT /^[W-\]46]/ 1: W46]789 0: -46]789 0: *** Failers 1: Wall 1: Zebra 1: 42 1: [abcd] 1: ]abcd[ 0: 1: W46]789 1: Wall 1: Zebra 1: Xylophone 1: 42 1: [abcd] 1: ]abcd[ 1: \\backslash 0: *** Failers 0: -46]789 0: well /^[W-c]+$/ 1: WXY_^abc 0: *** Failers 0: wxy /^[W-c]+$/i 1: WXY_^abc 1: wxy_^ABC /^[\000-\037]/ 0: \0A 0: \01B 0: \037C /^[\d-a]/ 1: abcde 1: -things 1: 0digit 0: *** Failers 0: bcdef /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ 1: 123456654321 /^[\da-f](\.[\da-f])*$/i 1: a.b.c.d 1: A.B.C.D 1: a.b.c.1.2.3.C /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ 0: a+ Z0+\x08\n\x1d\x12 /^[\x3f-\x5F]+$/i 1: WXY_^abc 1: wxy_^ABC /^[]cde]/ 1: ]thing 1: cthing 1: dthing 1: ething 0: *** Failers 0: athing 0: fthing /^[^]cde]/ 1: athing 1: fthing 1: *** Failers 0: ]thing 0: cthing 0: dthing 0: ething /^[^ab\]cde]/ 1: fthing 1: [thing 1: \\thing 1: *** Failers 0: athing 0: bthing 0: ]thing 0: cthing 0: dthing 0: ething /^[^bcd]*(c+)/ 1: aexycd /^[a-c]{12}/ 1: abcabcabcabc /^[a-d]/ 1: abcde 0: -things 0: 0digit 0: *** Failers 1: bcdef /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ 1: a. 1: Z. 1: 2. 1: ab-c.pq-r. 1: sxk.zzz.ac.uk. 1: x-.y-. 0: *** Failers 0: -abc.peq. /^[ab\]cde]/ 1: athing 1: bthing 1: ]thing 1: cthing 1: dthing 1: ething 0: *** Failers 0: fthing 0: [thing 0: \\thing /^[ab]{1,3}(ab*?|b)/ 1: aabbbbb /^[ab]{1,3}(ab*|b)/ 1: aabbbbb /^[ab]{1,3}?(ab*?|b)/ 1: aabbbbb /^[ab]{1,3}?(ab*|b)/ 1: aabbbbb /^[abc]{12}/ 1: abcabcabcabc /^[abcdefghijklmnopqrstuvwxy0123456789]/ 1: n 0: *** Failers 0: z /^[aeiou\d]{4,5}$/ 1: uoie 1: 1234 1: 12345 1: aaaaa 0: *** Failers 0: 123456 /^[aeiou\d]{4,5}?/ 1: uoie 1: 1234 1: 12345 1: aaaaa 1: 123456 /^\".*\"\s*(;.*)?$/ 0: \"1234\" 0: \"abcd\" ; 0: \"\" ; rhubarb 0: *** Failers 0: \"1234\" : things /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ 1: *.a 1: *.b0-a 1: *.c3-b.c 1: *.c-a.b-c 0: *** Failers 0: *.0 0: *.a- 0: *.a-b.c- 0: *.c-a.0-c /^\ca\cA\c[\c{\c:/ 0: \x01\x01\e;z /^\d\d\d\d\d\d\d\d\d\d\d\d/ 1: 123456654321 /^\d{8,}\@.+[^k]$/ 0: 12345678\@a.b.c.d 0: 123456789\@x.y.z 0: *** Failers 0: 12345678\@x.y.uk 0: 1234567\@a.b.c.d /^\d{8}\w{2,}/ 1: 1234567890 1: 12345678ab 1: 12345678__ 0: *** Failers 0: 1234567 /^\s/ 0: \040abc 0: \x0cabc 0: \nabc 0: \rabc 0: \tabc 0: *** Failers 0: abc /^\/ 1: /^a b c/x 1: abc /^a (?#xxx) (?#yyy) {3}c/x 1: aaac /^a(?#xxx){3}c/ 1: aaac /^a(bc+|b[eh])g|.h$/ 1: abh /^a(bc+|b[eh])g|.h$/i 1: ABH /^a*?\w/ 1: z 1: az 1: aaaz 1: a 1: aa 1: aaaa 1: a+ 1: aa+ /^a*\w/ 1: z 1: az 1: aaaz 1: a 1: aa 1: aaaa 1: a+ 1: aa+ /^a+?\w/ 1: az 1: aaaz 1: aa 1: aaaa 1: aa+ /^a+\w/ 1: az 1: aaaz 1: aa 1: aaaa 1: aa+ /^a.b/ 0: a\rb 0: *** Failers 0: a\nb /^abc$/ /^abc$/i /^abc$/m 1: abc 0: qqq\nabc 0: abc\nzzz 0: qqq\nabc\nzzz /^abc/ 1: abcc /^abc/i 1: ABCC /^abcd#rhubarb/x 1: abcd /^xxx[0-9]+$/ 1: xxx0 1: xxx1234 0: *** Failers 0: xxx /^ÿ/ 1: ÿ /a b/x 0: > \x09\x0a\x0c\x0d\x0b< 0: 0: > \x09\x0a\x0c\x0d\x0b< 0: 0: > \x09\x0a\x0c\x0d\x0b< 0: 0: > \x09\x0a\x0c\x0d\x0b< 0: 1: ab /a(?!b)./ 1: abad /a(?:b|(c|e){1,2}?|d)+?(.)/ 1: ace /a(?:b|c|d)(.)/ 1: ace /a(?:b|c|d)*(.)/ 1: ace /a(?:b|c|d)+(.)/ 1: acdbcdbe /a(?:b|c|d)+?(.)/ 1: ace 1: acdbcdbe /a(?:b|c|d){2}(.)/ 1: acdbcdbe /a(?:b|c|d){4,5}(.)/ 1: acdbcdbe /a(?:b|c|d){4,5}?(.)/ 1: acdbcdbe /a(?:b|c|d){5,6}(.)/ 1: acdbcdbe /a(?:b|c|d){5,6}?(.)/ 1: acdbcdbe /a(?:b|c|d){5,7}(.)/ 1: acdbcdbe /a(?:b|c|d){5,7}?(.)/ 1: acdbcdbe /a(?:b|c|d){6,7}(.)/ 1: acdbcdbe /a(?:b|c|d){6,7}?(.)/ 1: acdbcdbe /a(?=b(?i)c)\w\wd/ 1: abcd 1: abCd 0: *** Failers 0: aBCd 0: abcD /a(?=c|d)./ 1: abad /a(?=d)./ 1: abad /a(?i:b)*c/ 1: aBc 1: aBBc 0: *** Failers 0: aBC 0: aBBC /a(?i:b)c/ 1: abc 1: aBc 0: *** Failers 0: ABC 0: abC 0: aBC /a(?x: b c )d/ 1: XabcdY 0: *** Failers 0: Xa b c d Y /a([bc]*)(c*d)/ 1: abcd /a([bc]*)(c*d)/i 1: ABCD /a([bc]*)(c+d)/ 1: abcd /a([bc]*)(c+d)/i 1: ABCD /a([bc]*)c*/ 1: abc /a([bc]*)c*/i 1: ABC /a([bc]+)(c*d)/ 1: abcd /a([bc]+)(c*d)/i 1: ABCD /a(b*)/ 1: a 1: ab 1: abbbb 1: *** Failers 0: bbbbb /a(bc)d/ 1: abcd /a(bc)d/i 1: ABCD /a*/ /a*/g 1: abbab /a*/i /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ 1: abxyzpqrrrabbxyyyypqAzz 1: abxyzpqrrrabbxyyyypqAzz 1: aabxyzpqrrrabbxyyyypqAzz 1: aaabxyzpqrrrabbxyyyypqAzz 1: aaaabxyzpqrrrabbxyyyypqAzz 1: abcxyzpqrrrabbxyyyypqAzz 1: aabcxyzpqrrrabbxyyyypqAzz 1: aaabcxyzpqrrrabbxyyyypAzz 1: aaabcxyzpqrrrabbxyyyypqAzz 1: aaabcxyzpqrrrabbxyyyypqqAzz 1: aaabcxyzpqrrrabbxyyyypqqqAzz 1: aaabcxyzpqrrrabbxyyyypqqqqAzz 1: aaabcxyzpqrrrabbxyyyypqqqqqAzz 1: aaabcxyzpqrrrabbxyyyypqqqqqqAzz 1: aaaabcxyzpqrrrabbxyyyypqAzz 1: abxyzzpqrrrabbxyyyypqAzz 1: aabxyzzzpqrrrabbxyyyypqAzz 1: aaabxyzzzzpqrrrabbxyyyypqAzz 1: aaaabxyzzzzpqrrrabbxyyyypqAzz 1: abcxyzzpqrrrabbxyyyypqAzz 1: aabcxyzzzpqrrrabbxyyyypqAzz 1: aaabcxyzzzzpqrrrabbxyyyypqAzz 1: aaaabcxyzzzzpqrrrabbxyyyypqAzz 1: aaaabcxyzzzzpqrrrabbbxyyyypqAzz 1: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 1: aaabcxyzpqrrrabbxyyyypABzz 1: aaabcxyzpqrrrabbxyyyypABBzz 1: >>>aaabxyzpqrrrabbxyyyypqAzz 1: >aaaabxyzpqrrrabbxyyyypqAzz 1: >>>>abcxyzpqrrrabbxyyyypqAzz 0: *** Failers 0: abxyzpqrrabbxyyyypqAzz 0: abxyzpqrrrrabbxyyyypqAzz 0: abxyzpqrrrabxyyyypqAzz 0: aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz 0: aaaabcxyzzzzpqrrrabbbxyyypqAzz 0: aaabcxyzpqrrrabbxyyyypqqqqqqqAzz /a+b+c/ 1: aabbabc /a+b+c/i 1: AABBABC /a.*?c/i 1: ABCABC /a.*c/ 1: axyzc /a.*c/i 0: *** Failers 1: AABC 0: AXYZD /a.+?c/ 1: abcabc /a.+?c/i 1: ABCABC /a.b/ 1: acb 0: *** Failers 0: a\nb /a.b/s 1: acb 0: a\nb /a.c/ 1: abc 1: axc /a.c/i 1: ABC 1: AXC /a.{0,5}?c/i 1: ABCABC /a[-]?c/ 1: ac /a[-]?c/i 1: AC /a[-b]/ 1: a- /a[-b]/i 1: A- /a[\S]b/ 1: a-b 0: *** Failers 1: a-b 0: a b /a[\s]b/ 1: a b /a[]]b/ 1: a]b /a[]]b/i 1: A]B /a[^-b]c/ 1: adc /a[^-b]c/i 1: ADC 0: *** Failers 0: ABD 0: A-C /a[^]b]c/ 1: adc 0: *** Failers 1: a-c 0: a]c /a[^]b]c/i 1: ADC /a[^a]b/ 1: acb 0: a\nb /a[^a]b/s 1: acb 0: a\nb /a[^bc]d/ 1: aed 0: *** Failers 0: abd 0: abd /a[^bc]d/i 1: AED /a[b-]/ 1: a- /a[b-]/i 1: A- /a[b-d]/ 1: aac /a[b-d]/i 1: AAC /a[b-d]e/ 1: ace /a[b-d]e/i 1: ACE 0: *** Failers 0: ABC 0: ABD /a[bc]d/ 1: abd 0: *** Failers 0: axyzd 0: abc /a[bc]d/i 1: ABD /a[bcd]*dcdcde/ 1: adcdcde /a[bcd]*dcdcde/i 1: ADCDCDE /a[bcd]+dcdcde/ 0: *** Failers 0: abcde 0: adcdcde /a[bcd]+dcdcde/i /a\(*b/ 1: ab 1: a((b /a\(*b/i 1: AB 1: A((B /a\(b/ 1: a(b /a\(b/i 1: A(B /a\Sb/ 1: a-b 0: *** Failers 1: a-b 0: a b /a\Z/ 0: *** Failers 0: aaab 0: a\nb\n /a\\b/ 1: a\b /a\\b/i 1: A\B /a\sb/ 1: a b /a]/ 1: a] /a]/i 1: A] /ab(c){0,0}d/ 1: abd 0: *** Failers 0: abcd /ab*/ 1: xabyabbbz 1: xayabbbz /ab*/i 1: XABYABBBZ 1: XAYABBBZ /ab*?bc/i 1: ABBBBC /ab*bc/ 1: abc 1: abbc 1: abbbbc /ab*bc/i 1: ABC 1: ABBC /ab*c/ 1: abc /ab*c/i 1: ABC /ab+?bc/i 1: ABBC /ab+bc/ 1: abbbbc /ab+bc/i 1: ABBBBC /ab??bc/i /ab??c/i 1: ABC /ab?bc/ /ab?c/ 1: abc /ab[cd]{0,0}e/ 1: abe 0: *** Failers 0: abcde /ab\d{0}e/ 1: abe 0: *** Failers 0: ab1e /abc$/ 1: aabc 0: *** Failers 1: aabc 0: aabcd /abc$/i 1: AABC /abc./g 1: abc1abc2xyzabc3 /abc/ /abc/i /abc[\10]de/ 0: abc\010de /abc[\1]de/ 0: abc\1de /abc\0def\00pqr\000xyz\0000AB/ 0: abc\0def\00pqr\000xyz\0000AB 0: abc456 abc\0def\00pqr\000xyz\0000ABCDE /abc\81/ 0: abc\081 0: abc\0\x38\x31 /abc\91/ 0: abc\091 0: abc\0\x39\x31 /abc\Qabc\Eabc/ 1: abcabcabc /abc\x0def\x00pqr\x000xyz\x0000AB/ 0: abc\x0def\x00pqr\x000xyz\x0000AB 0: abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE /abcd*efg/ 1: abcdefg /abcd*efg/i 1: ABCDEFG /abcd/ 1: abcd /abcd/i 1: ABCD /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ 0: abcd\t\n\r\f\a\e9;\$\\?caxyz /abcde{0,0}/ 1: abcd 0: *** Failers 0: abce /ab{0,1}?bc/i 1: ABC /ab{0,1}?c/i 1: ABC /ab{0,1}bc/ 1: abc /ab{0,1}c/ 1: abc /ab{0,}?bc/i 1: ABBBBC /ab{0,}bc/ 1: abbbbc /ab{1,3}?bc/i 1: ABBBBC /ab{1,3}bc/ 1: abbbbc /ab{1,}?bc/i 1: ABBBBC /ab{1,}bc/ 1: abbbbc /ab{1,}bc/i /ab{3,4a}cd/ 1: ab{3,4a}cd /ab{3,4}?bc/i 1: ABBBBC /ab{3,4}bc/ 1: abbbbc /ab{3,cd/ 1: ab{3,cd /ab{3cd/ 1: ab{3cd /ab{4,5}?bc/i 0: *** Failers 0: ABQ 0: ABBBBC /ab{4,5}bc/ 0: *** Failers 0: abq 0: abbbbc /ab|cd/ 1: abc 1: abcd /ab|cd/i 1: ABC 1: ABCD /a{0}bc/ 1: bc /a{1,}b{1,}c/ 1: aabbabc /a{1,}b{1,}c/i 1: AABBABC /a|b|c|d|e/ 1: e /a|b|c|d|e/i 1: E /b\Z/ 1: a\nb /b\z/ 1: a\nb 0: *** Failers /foo(.*)bar/ 1: The food is under the bar in the barn. /foo(?!bar)(.*)/ 1: foobar is foolish see? /foo\w*\d{4}baz/ 1: foobar1234baz /multiple words of text/ 0: *** Failers 0: aa 0: uh-uh /multiple words of text/i 0: *** Failers 0: AA 0: UH-UH /multiple words/ 1: multiple words, yeah /multiple words/i 1: MULTIPLE WORDS, YEAH /the quick brown fox/ 1: the quick brown fox 0: The quick brown FOX 1: What do you know about the quick brown fox? 0: What do you know about THE QUICK BROWN FOX? /word (?:[a-zA-Z0-9]+ ){0,10}otherword/ 0: rd cat dog elephant mussel cow horse canary baboon snake shark otherword 0: rd cat dog elephant mussel cow horse canary baboon snake shark /word (?:[a-zA-Z0-9]+ ){0,300}otherword/ 0: rd 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 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/ 1: word cat dog elephant mussel cow horse canary baboon snake shark otherword 0: word cat dog elephant mussel cow horse canary baboon snake shark 0: 0: 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 /x(~~)*(?:(?:F)?)?/ 1: x~~ /{4,5a}bc/ 1: {4,5a}bc /Åæåä[à-ÿÀ-ß]+/ 1: Åæåäà 1: Åæåäÿ 1: ÅæåäÀ 1: Åæåäß