dvander@2762: /(a)b|/I dvander@2762: dvander@2762: /abc/I dvander@2762: abc dvander@2762: defabc dvander@2762: \Aabc dvander@2762: *** Failers dvander@2762: \Adefabc dvander@2762: ABC dvander@2762: dvander@2762: /^abc/I dvander@2762: abc dvander@2762: \Aabc dvander@2762: *** Failers dvander@2762: defabc dvander@2762: \Adefabc dvander@2762: dvander@2762: /a+bc/I dvander@2762: dvander@2762: /a*bc/I dvander@2762: dvander@2762: /a{3}bc/I dvander@2762: dvander@2762: /(abc|a+z)/I dvander@2762: dvander@2762: /^abc$/I dvander@2762: abc dvander@2762: *** Failers dvander@2762: def\nabc dvander@2762: dvander@2762: /ab\idef/X dvander@2762: dvander@2762: /(?X)ab\idef/X dvander@2762: dvander@2762: /x{5,4}/ dvander@2762: dvander@2762: /z{65536}/ dvander@2762: dvander@2762: /[abcd/ dvander@2762: dvander@2762: /(?X)[\B]/ dvander@2762: dvander@2762: /[z-a]/ dvander@2762: dvander@2762: /^*/ dvander@2762: dvander@2762: /(abc/ dvander@2762: dvander@2762: /(?# abc/ dvander@2762: dvander@2762: /(?z)abc/ dvander@2762: dvander@2762: /.*b/I dvander@2762: dvander@2762: /.*?b/I dvander@2762: dvander@2762: /cat|dog|elephant/I dvander@2762: this sentence eventually mentions a cat dvander@2762: this sentences rambles on and on for a while and then reaches elephant dvander@2762: dvander@2762: /cat|dog|elephant/IS dvander@2762: this sentence eventually mentions a cat dvander@2762: this sentences rambles on and on for a while and then reaches elephant dvander@2762: dvander@2762: /cat|dog|elephant/IiS dvander@2762: this sentence eventually mentions a CAT cat dvander@2762: this sentences rambles on and on for a while to elephant ElePhant dvander@2762: dvander@2762: /a|[bcd]/IS dvander@2762: dvander@2762: /(a|[^\dZ])/IS dvander@2762: dvander@2762: /(a|b)*[\s]/IS dvander@2762: dvander@2762: /(ab\2)/ dvander@2762: dvander@2762: /{4,5}abc/ dvander@2762: dvander@2762: /(a)(b)(c)\2/I dvander@2762: abcb dvander@2762: \O0abcb dvander@2762: \O3abcb dvander@2762: \O6abcb dvander@2762: \O9abcb dvander@2762: \O12abcb dvander@2762: dvander@2762: /(a)bc|(a)(b)\2/I dvander@2762: abc dvander@2762: \O0abc dvander@2762: \O3abc dvander@2762: \O6abc dvander@2762: aba dvander@2762: \O0aba dvander@2762: \O3aba dvander@2762: \O6aba dvander@2762: \O9aba dvander@2762: \O12aba dvander@2762: dvander@2762: /abc$/IE dvander@2762: abc dvander@2762: *** Failers dvander@2762: abc\n dvander@2762: abc\ndef dvander@2762: dvander@2762: /(a)(b)(c)(d)(e)\6/ dvander@2762: dvander@2762: /the quick brown fox/I dvander@2762: the quick brown fox dvander@2762: this is a line with the quick brown fox dvander@2762: dvander@2762: /the quick brown fox/IA dvander@2762: the quick brown fox dvander@2762: *** Failers dvander@2762: this is a line with the quick brown fox dvander@2762: dvander@2762: /ab(?z)cd/ dvander@2762: dvander@2762: /^abc|def/I dvander@2762: abcdef dvander@2762: abcdef\B dvander@2762: dvander@2762: /.*((abc)$|(def))/I dvander@2762: defabc dvander@2762: \Zdefabc dvander@2762: dvander@2762: /abc/IP dvander@2762: abc dvander@2762: *** Failers dvander@2762: dvander@2762: /^abc|def/IP dvander@2762: abcdef dvander@2762: abcdef\B dvander@2762: dvander@2762: /.*((abc)$|(def))/IP dvander@2762: defabc dvander@2762: \Zdefabc dvander@2762: dvander@2762: /the quick brown fox/IP dvander@2762: the quick brown fox dvander@2762: *** Failers dvander@2762: The Quick Brown Fox dvander@2762: dvander@2762: /the quick brown fox/IPi dvander@2762: the quick brown fox dvander@2762: The Quick Brown Fox dvander@2762: dvander@2762: /abc.def/IP dvander@2762: *** Failers dvander@2762: abc\ndef dvander@2762: dvander@2762: /abc$/IP dvander@2762: abc dvander@2762: abc\n dvander@2762: dvander@2762: /(abc)\2/IP dvander@2762: dvander@2762: /(abc\1)/IP dvander@2762: abc dvander@2762: dvander@2762: /)/ dvander@2762: dvander@2762: /a[]b/ dvander@2762: dvander@2762: /[^aeiou ]{3,}/I dvander@2762: co-processors, and for dvander@2762: dvander@2762: /<.*>/I dvander@2762: abcghinop dvander@2762: dvander@2762: /<.*?>/I dvander@2762: abcghinop dvander@2762: dvander@2762: /<.*>/IU dvander@2762: abcghinop dvander@2762: dvander@2762: /(?U)<.*>/I dvander@2762: abcghinop dvander@2762: dvander@2762: /<.*?>/IU dvander@2762: abcghinop dvander@2762: dvander@2762: /={3,}/IU dvander@2762: abc========def dvander@2762: dvander@2762: /(?U)={3,}?/I dvander@2762: abc========def dvander@2762: dvander@2762: /(?^abc)/Im dvander@2762: abc dvander@2762: def\nabc dvander@2762: *** Failers dvander@2762: defabc dvander@2762: dvander@2762: /(?<=ab(c+)d)ef/ dvander@2762: dvander@2762: /(?<=ab(?<=c+)d)ef/ dvander@2762: dvander@2762: /(?<=ab(c|de)f)g/ dvander@2762: dvander@2762: /The next three are in testinput2 because they have variable length branches/ dvander@2762: dvander@2762: /(?<=bullock|donkey)-cart/I dvander@2762: the bullock-cart dvander@2762: a donkey-cart race dvander@2762: *** Failers dvander@2762: cart dvander@2762: horse-and-cart dvander@2762: dvander@2762: /(?<=ab(?i)x|y|z)/I dvander@2762: dvander@2762: /(?>.*)(?<=(abcd)|(xyz))/I dvander@2762: alphabetabcd dvander@2762: endingxyz dvander@2762: dvander@2762: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I dvander@2762: abxyZZ dvander@2762: abXyZZ dvander@2762: ZZZ dvander@2762: zZZ dvander@2762: bZZ dvander@2762: BZZ dvander@2762: *** Failers dvander@2762: ZZ dvander@2762: abXYZZ dvander@2762: zzz dvander@2762: bzz dvander@2762: dvander@2762: /(?[^()]+) # Either a sequence of non-brackets (no backtracking) dvander@2762: | # Or dvander@2762: (?R) # Recurse - i.e. nested bracketed string dvander@2762: )* # Zero or more contents dvander@2762: \) # Closing ) dvander@2762: /Ix dvander@2762: (abcd) dvander@2762: (abcd)xyz dvander@2762: xyz(abcd) dvander@2762: (ab(xy)cd)pqr dvander@2762: (ab(xycd)pqr dvander@2762: () abc () dvander@2762: 12(abcde(fsh)xyz(foo(bar))lmno)89 dvander@2762: *** Failers dvander@2762: abcd dvander@2762: abcd) dvander@2762: (abcd dvander@2762: dvander@2762: /\( ( (?>[^()]+) | (?R) )* \) /Ixg dvander@2762: (ab(xy)cd)pqr dvander@2762: 1(abcd)(x(y)z)pqr dvander@2762: dvander@2762: /\( (?: (?>[^()]+) | (?R) ) \) /Ix dvander@2762: (abcd) dvander@2762: (ab(xy)cd) dvander@2762: (a(b(c)d)e) dvander@2762: ((ab)) dvander@2762: *** Failers dvander@2762: () dvander@2762: dvander@2762: /\( (?: (?>[^()]+) | (?R) )? \) /Ix dvander@2762: () dvander@2762: 12(abcde(fsh)xyz(foo(bar))lmno)89 dvander@2762: dvander@2762: /\( ( (?>[^()]+) | (?R) )* \) /Ix dvander@2762: (ab(xy)cd) dvander@2762: dvander@2762: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix dvander@2762: (ab(xy)cd) dvander@2762: dvander@2762: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix dvander@2762: (ab(xy)cd) dvander@2762: (123ab(xy)cd) dvander@2762: dvander@2762: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix dvander@2762: (ab(xy)cd) dvander@2762: (123ab(xy)cd) dvander@2762: dvander@2762: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix dvander@2762: (ab(xy)cd) dvander@2762: dvander@2762: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix dvander@2762: (abcd(xyz

qrs)123) dvander@2762: dvander@2762: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix dvander@2762: (ab(cd)ef) dvander@2762: (ab(cd(ef)gh)ij) dvander@2762: dvander@2762: /^[[:alnum:]]/DZ dvander@2762: dvander@2762: /^[[:^alnum:]]/DZ dvander@2762: dvander@2762: /^[[:alpha:]]/DZ dvander@2762: dvander@2762: /^[[:^alpha:]]/DZ dvander@2762: dvander@2762: /[_[:alpha:]]/IS dvander@2762: dvander@2762: /^[[:ascii:]]/DZ dvander@2762: dvander@2762: /^[[:^ascii:]]/DZ dvander@2762: dvander@2762: /^[[:blank:]]/DZ dvander@2762: dvander@2762: /^[[:^blank:]]/DZ dvander@2762: dvander@2762: /[\n\x0b\x0c\x0d[:blank:]]/IS dvander@2762: dvander@2762: /^[[:cntrl:]]/DZ dvander@2762: dvander@2762: /^[[:digit:]]/DZ dvander@2762: dvander@2762: /^[[:graph:]]/DZ dvander@2762: dvander@2762: /^[[:lower:]]/DZ dvander@2762: dvander@2762: /^[[:print:]]/DZ dvander@2762: dvander@2762: /^[[:punct:]]/DZ dvander@2762: dvander@2762: /^[[:space:]]/DZ dvander@2762: dvander@2762: /^[[:upper:]]/DZ dvander@2762: dvander@2762: /^[[:xdigit:]]/DZ dvander@2762: dvander@2762: /^[[:word:]]/DZ dvander@2762: dvander@2762: /^[[:^cntrl:]]/DZ dvander@2762: dvander@2762: /^[12[:^digit:]]/DZ dvander@2762: dvander@2762: /^[[:^blank:]]/DZ dvander@2762: dvander@2762: /[01[:alpha:]%]/DZ dvander@2762: dvander@2762: /[[.ch.]]/I dvander@2762: dvander@2762: /[[=ch=]]/I dvander@2762: dvander@2762: /[[:rhubarb:]]/I dvander@2762: dvander@2762: /[[:upper:]]/Ii dvander@2762: A dvander@2762: a dvander@2762: dvander@2762: /[[:lower:]]/Ii dvander@2762: A dvander@2762: a dvander@2762: dvander@2762: /((?-i)[[:lower:]])[[:lower:]]/Ii dvander@2762: ab dvander@2762: aB dvander@2762: *** Failers dvander@2762: Ab dvander@2762: AB dvander@2762: dvander@2762: /[\200-\110]/I dvander@2762: dvander@2762: /^(?(0)f|b)oo/I dvander@2762: dvander@2762: /This one's here because of the large output vector needed/I dvander@2762: dvander@2762: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I dvander@2762: \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC dvander@2762: dvander@2762: /This one's here because Perl does this differently and PCRE can't at present/I dvander@2762: dvander@2762: /(main(O)?)+/I dvander@2762: mainmain dvander@2762: mainOmain dvander@2762: dvander@2762: /These are all cases where Perl does it differently (nested captures)/I dvander@2762: dvander@2762: /^(a(b)?)+$/I dvander@2762: aba dvander@2762: dvander@2762: /^(aa(bb)?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(aa|aa(bb))+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(aa(bb)??)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(?:aa(bb)?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(aa(b(b))?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(?:aa(b(b))?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(?:aa(b(?:b))?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(?:aa(bb(?:b))?)+$/I dvander@2762: aabbbaa dvander@2762: dvander@2762: /^(?:aa(b(?:bb))?)+$/I dvander@2762: aabbbaa dvander@2762: dvander@2762: /^(?:aa(?:b(b))?)+$/I dvander@2762: aabbaa dvander@2762: dvander@2762: /^(?:aa(?:b(bb))?)+$/I dvander@2762: aabbbaa dvander@2762: dvander@2762: /^(aa(b(bb))?)+$/I dvander@2762: aabbbaa dvander@2762: dvander@2762: /^(aa(bb(bb))?)+$/I dvander@2762: aabbbbaa dvander@2762: dvander@2762: /--------------------------------------------------------------------/I dvander@2762: dvander@2762: /#/IxDZ dvander@2762: dvander@2762: /a#/IxDZ dvander@2762: dvander@2762: /[\s]/DZ dvander@2762: dvander@2762: /[\S]/DZ dvander@2762: dvander@2762: /a(?i)b/DZ dvander@2762: ab dvander@2762: aB dvander@2762: *** Failers dvander@2762: AB dvander@2762: dvander@2762: /(a(?i)b)/DZ dvander@2762: ab dvander@2762: aB dvander@2762: *** Failers dvander@2762: AB dvander@2762: dvander@2762: / (?i)abc/IxDZ dvander@2762: dvander@2762: /#this is a comment dvander@2762: (?i)abc/IxDZ dvander@2762: dvander@2762: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ dvander@2762: dvander@2762: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ dvander@2762: dvander@2762: /\Q\E/DZ dvander@2762: \ dvander@2762: dvander@2762: /\Q\Ex/DZ dvander@2762: dvander@2762: / \Q\E/DZ dvander@2762: dvander@2762: /a\Q\E/DZ dvander@2762: abc dvander@2762: bca dvander@2762: bac dvander@2762: dvander@2762: /a\Q\Eb/DZ dvander@2762: abc dvander@2762: dvander@2762: /\Q\Eabc/DZ dvander@2762: dvander@2762: /x*+\w/DZ dvander@2762: *** Failers dvander@2762: xxxxx dvander@2762: dvander@2762: /x?+/DZ dvander@2762: dvander@2762: /x++/DZ dvander@2762: dvander@2762: /x{1,3}+/DZ dvander@2762: dvander@2762: /(x)*+/DZ dvander@2762: dvander@2762: /^(\w++|\s++)*$/I dvander@2762: now is the time for all good men to come to the aid of the party dvander@2762: *** Failers dvander@2762: this is not a line with only words and spaces! dvander@2762: dvander@2762: /(\d++)(\w)/I dvander@2762: 12345a dvander@2762: *** Failers dvander@2762: 12345+ dvander@2762: dvander@2762: /a++b/I dvander@2762: aaab dvander@2762: dvander@2762: /(a++b)/I dvander@2762: aaab dvander@2762: dvander@2762: /(a++)b/I dvander@2762: aaab dvander@2762: dvander@2762: /([^()]++|\([^()]*\))+/I dvander@2762: ((abc(ade)ufh()()x dvander@2762: dvander@2762: /\(([^()]++|\([^()]+\))+\)/I dvander@2762: (abc) dvander@2762: (abc(def)xyz) dvander@2762: *** Failers dvander@2762: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dvander@2762: dvander@2762: /(abc){1,3}+/DZ dvander@2762: dvander@2762: /a+?+/I dvander@2762: dvander@2762: /a{2,3}?+b/I dvander@2762: dvander@2762: /(?U)a+?+/I dvander@2762: dvander@2762: /a{2,3}?+b/IU dvander@2762: dvander@2762: /x(?U)a++b/DZ dvander@2762: xaaaab dvander@2762: dvander@2762: /(?U)xa++b/DZ dvander@2762: xaaaab dvander@2762: dvander@2762: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ dvander@2762: dvander@2762: /^x(?U)a+b/DZ dvander@2762: dvander@2762: /^x(?U)(a+)b/DZ dvander@2762: dvander@2762: /[.x.]/I dvander@2762: dvander@2762: /[=x=]/I dvander@2762: dvander@2762: /[:x:]/I dvander@2762: dvander@2762: /\l/I dvander@2762: dvander@2762: /\L/I dvander@2762: dvander@2762: /\N{name}/I dvander@2762: dvander@2762: /\u/I dvander@2762: dvander@2762: /\U/I dvander@2762: dvander@2762: /[/I dvander@2762: dvander@2762: /[a-/I dvander@2762: dvander@2762: /[[:space:]/I dvander@2762: dvander@2762: /[\s]/IDZ dvander@2762: dvander@2762: /[[:space:]]/IDZ dvander@2762: dvander@2762: /[[:space:]abcde]/IDZ dvander@2762: dvander@2762: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix dvander@2762: <> dvander@2762: dvander@2762: hij> dvander@2762: hij> dvander@2762: def> dvander@2762: dvander@2762: *** Failers dvander@2762: iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ dvander@2762: dvander@2762: |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ dvander@2762: dvander@2762: /(.*)\d+\1/I dvander@2762: dvander@2762: /(.*)\d+/I dvander@2762: dvander@2762: /(.*)\d+\1/Is dvander@2762: dvander@2762: /(.*)\d+/Is dvander@2762: dvander@2762: /(.*(xyz))\d+\2/I dvander@2762: dvander@2762: /((.*))\d+\1/I dvander@2762: abc123bc dvander@2762: dvander@2762: /a[b]/I dvander@2762: dvander@2762: /(?=a).*/I dvander@2762: dvander@2762: /(?=abc).xyz/IiI dvander@2762: dvander@2762: /(?=abc)(?i).xyz/I dvander@2762: dvander@2762: /(?=a)(?=b)/I dvander@2762: dvander@2762: /(?=.)a/I dvander@2762: dvander@2762: /((?=abcda)a)/I dvander@2762: dvander@2762: /((?=abcda)ab)/I dvander@2762: dvander@2762: /()a/I dvander@2762: dvander@2762: /(?(1)ab|ac)(.)/I dvander@2762: dvander@2762: /(?(1)abz|acz)(.)/I dvander@2762: dvander@2762: /(?(1)abz)(.)/I dvander@2762: dvander@2762: /(?(1)abz)(1)23/I dvander@2762: dvander@2762: /(a)+/I dvander@2762: dvander@2762: /(a){2,3}/I dvander@2762: dvander@2762: /(a)*/I dvander@2762: dvander@2762: /[a]/I dvander@2762: dvander@2762: /[ab]/I dvander@2762: dvander@2762: /[ab]/IS dvander@2762: dvander@2762: /[^a]/I dvander@2762: dvander@2762: /\d456/I dvander@2762: dvander@2762: /\d456/IS dvander@2762: dvander@2762: /a^b/I dvander@2762: dvander@2762: /^a/Im dvander@2762: abcde dvander@2762: xy\nabc dvander@2762: *** Failers dvander@2762: xyabc dvander@2762: dvander@2762: /c|abc/I dvander@2762: dvander@2762: /(?i)[ab]/IS dvander@2762: dvander@2762: /[ab](?i)cd/IS dvander@2762: dvander@2762: /abc(?C)def/I dvander@2762: abcdef dvander@2762: 1234abcdef dvander@2762: *** Failers dvander@2762: abcxyz dvander@2762: abcxyzf dvander@2762: dvander@2762: /abc(?C)de(?C1)f/I dvander@2762: 123abcdef dvander@2762: dvander@2762: /(?C1)\dabc(?C2)def/I dvander@2762: 1234abcdef dvander@2762: *** Failers dvander@2762: abcdef dvander@2762: dvander@2762: /(?C255)ab/I dvander@2762: dvander@2762: /(?C256)ab/I dvander@2762: dvander@2762: /(?Cab)xx/I dvander@2762: dvander@2762: /(?C12vr)x/I dvander@2762: dvander@2762: /abc(?C)def/I dvander@2762: *** Failers dvander@2762: \x83\x0\x61bcdef dvander@2762: dvander@2762: /(abc)(?C)de(?C1)f/I dvander@2762: 123abcdef dvander@2762: 123abcdef\C+ dvander@2762: 123abcdef\C- dvander@2762: *** Failers dvander@2762: 123abcdef\C!1 dvander@2762: dvander@2762: /(?C0)(abc(?C1))*/I dvander@2762: abcabcabc dvander@2762: abcabc\C!1!3 dvander@2762: *** Failers dvander@2762: abcabcabc\C!1!3 dvander@2762: dvander@2762: /(\d{3}(?C))*/I dvander@2762: 123\C+ dvander@2762: 123456\C+ dvander@2762: 123456789\C+ dvander@2762: dvander@2762: /((xyz)(?C)p|(?C1)xyzabc)/I dvander@2762: xyzabc\C+ dvander@2762: dvander@2762: /(X)((xyz)(?C)p|(?C1)xyzabc)/I dvander@2762: Xxyzabc\C+ dvander@2762: dvander@2762: /(?=(abc))(?C)abcdef/I dvander@2762: abcdef\C+ dvander@2762: dvander@2762: /(?!(abc)(?C1)d)(?C2)abcxyz/I dvander@2762: abcxyz\C+ dvander@2762: dvander@2762: /(?<=(abc)(?C))xyz/I dvander@2762: abcxyz\C+ dvander@2762: dvander@2762: /a(b+)(c*)(?C1)/I dvander@2762: abbbbbccc\C*1 dvander@2762: dvander@2762: /a(b+?)(c*?)(?C1)/I dvander@2762: abbbbbccc\C*1 dvander@2762: dvander@2762: /(?C)abc/I dvander@2762: dvander@2762: /(?C)^abc/I dvander@2762: dvander@2762: /(?C)a|b/IS dvander@2762: dvander@2762: /(?R)/I dvander@2762: dvander@2762: /(a|(?R))/I dvander@2762: dvander@2762: /(ab|(bc|(de|(?R))))/I dvander@2762: dvander@2762: /x(ab|(bc|(de|(?R))))/I dvander@2762: xab dvander@2762: xbc dvander@2762: xde dvander@2762: xxab dvander@2762: xxxab dvander@2762: *** Failers dvander@2762: xyab dvander@2762: dvander@2762: /(ab|(bc|(de|(?1))))/I dvander@2762: dvander@2762: /x(ab|(bc|(de|(?1)x)x)x)/I dvander@2762: dvander@2762: /^([^()]|\((?1)*\))*$/I dvander@2762: abc dvander@2762: a(b)c dvander@2762: a(b(c))d dvander@2762: *** Failers) dvander@2762: a(b(c)d dvander@2762: dvander@2762: /^>abc>([^()]|\((?1)*\))*abc>123abc>1(2)3abc>(1(2)3)]*+) | (?2)) * >))/Ix dvander@2762: <> dvander@2762: dvander@2762: hij> dvander@2762: hij> dvander@2762: def> dvander@2762: dvander@2762: *** Failers dvander@2762: b|c)d(?Pe)/DZ dvander@2762: abde dvander@2762: acde dvander@2762: dvander@2762: /(?:a(?Pc(?Pd)))(?Pa)/DZ dvander@2762: dvander@2762: /(?Pa)...(?P=a)bbb(?P>a)d/DZ dvander@2762: dvander@2762: /^\W*(?:(?P(?P.)\W*(?P>one)\W*(?P=two)|)|(?P(?P.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii dvander@2762: 1221 dvander@2762: Satan, oscillate my metallic sonatas! dvander@2762: A man, a plan, a canal: Panama! dvander@2762: Able was I ere I saw Elba. dvander@2762: *** Failers dvander@2762: The quick brown fox dvander@2762: dvander@2762: /((?(R)a|b))\1(?1)?/I dvander@2762: bb dvander@2762: bbaa dvander@2762: dvander@2762: /(.*)a/Is dvander@2762: dvander@2762: /(.*)a\1/Is dvander@2762: dvander@2762: /(.*)a(b)\2/Is dvander@2762: dvander@2762: /((.*)a|(.*)b)z/Is dvander@2762: dvander@2762: /((.*)a|(.*)b)z\1/Is dvander@2762: dvander@2762: /((.*)a|(.*)b)z\2/Is dvander@2762: dvander@2762: /((.*)a|(.*)b)z\3/Is dvander@2762: dvander@2762: /((.*)a|^(.*)b)z\3/Is dvander@2762: dvander@2762: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is dvander@2762: dvander@2762: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is dvander@2762: dvander@2762: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is dvander@2762: dvander@2762: /(a)(bc)/INDZ dvander@2762: abc dvander@2762: dvander@2762: /(?Pa)(bc)/INDZ dvander@2762: abc dvander@2762: dvander@2762: /(a)(?Pbc)/INDZ dvander@2762: dvander@2762: /(a+)*zz/I dvander@2762: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M dvander@2762: aaaaaaaaaaaaaz\M dvander@2762: dvander@2762: /(aaa(?C1)bbb|ab)/I dvander@2762: aaabbb dvander@2762: aaabbb\C*0 dvander@2762: aaabbb\C*1 dvander@2762: aaabbb\C*-1 dvander@2762: dvander@2762: /ab(?Pcd)ef(?Pgh)/I dvander@2762: abcdefgh dvander@2762: abcdefgh\C1\Gtwo dvander@2762: abcdefgh\Cone\Ctwo dvander@2762: abcdefgh\Cthree dvander@2762: dvander@2762: /(?P)(?P)/DZ dvander@2762: dvander@2762: /(?P)(?P)/DZ dvander@2762: dvander@2762: /(?Pzz)(?Paa)/I dvander@2762: zzaa\CZ dvander@2762: zzaa\CA dvander@2762: dvander@2762: /(?Peks)(?Peccs)/I dvander@2762: dvander@2762: /(?Pabc(?Pdef)(?Pxyz))/I dvander@2762: dvander@2762: "\[((?P\d+)(,(?P>elem))*)\]"I dvander@2762: [10,20,30,5,5,4,4,2,43,23,4234] dvander@2762: *** Failers dvander@2762: [] dvander@2762: dvander@2762: "\[((?P\d+)(,(?P>elem))*)?\]"I dvander@2762: [10,20,30,5,5,4,4,2,43,23,4234] dvander@2762: [] dvander@2762: dvander@2762: /(a(b(?2)c))?/DZ dvander@2762: dvander@2762: /(a(b(?2)c))*/DZ dvander@2762: dvander@2762: /(a(b(?2)c)){0,2}/DZ dvander@2762: dvander@2762: /[ab]{1}+/DZ dvander@2762: dvander@2762: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii dvander@2762: Baby Bjorn Active Carrier - With free SHIPPING!! dvander@2762: dvander@2762: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS dvander@2762: Baby Bjorn Active Carrier - With free SHIPPING!! dvander@2762: dvander@2762: /a*.*b/ISDZ dvander@2762: dvander@2762: /(a|b)*.?c/ISDZ dvander@2762: dvander@2762: /abc(?C255)de(?C)f/DZ dvander@2762: dvander@2762: /abcde/ICDZ dvander@2762: abcde dvander@2762: abcdfe dvander@2762: dvander@2762: /a*b/ICDZ dvander@2762: ab dvander@2762: aaaab dvander@2762: aaaacb dvander@2762: dvander@2762: /a+b/ICDZ dvander@2762: ab dvander@2762: aaaab dvander@2762: aaaacb dvander@2762: dvander@2762: /(abc|def)x/ICDZ dvander@2762: abcx dvander@2762: defx dvander@2762: abcdefzx dvander@2762: dvander@2762: /(ab|cd){3,4}/IC dvander@2762: ababab dvander@2762: abcdabcd dvander@2762: abcdcdcdcdcd dvander@2762: dvander@2762: /([ab]{,4}c|xy)/ICDZ dvander@2762: Note: that { does NOT introduce a quantifier dvander@2762: dvander@2762: /([ab]{1,4}c|xy){4,5}?123/ICDZ dvander@2762: aacaacaacaacaac123 dvander@2762: dvander@2762: /\b.*/I dvander@2762: ab cd\>1 dvander@2762: dvander@2762: /\b.*/Is dvander@2762: ab cd\>1 dvander@2762: dvander@2762: /(?!.bcd).*/I dvander@2762: Xbcd12345 dvander@2762: dvander@2762: /abcde/I dvander@2762: ab\P dvander@2762: abc\P dvander@2762: abcd\P dvander@2762: abcde\P dvander@2762: the quick brown abc\P dvander@2762: ** Failers\P dvander@2762: the quick brown abxyz fox\P dvander@2762: dvander@2762: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I dvander@2762: 13/05/04\P dvander@2762: 13/5/2004\P dvander@2762: 02/05/09\P dvander@2762: 1\P dvander@2762: 1/2\P dvander@2762: 1/2/0\P dvander@2762: 1/2/04\P dvander@2762: 0\P dvander@2762: 02/\P dvander@2762: 02/0\P dvander@2762: 02/1\P dvander@2762: ** Failers\P dvander@2762: \P dvander@2762: 123\P dvander@2762: 33/4/04\P dvander@2762: 3/13/04\P dvander@2762: 0/1/2003\P dvander@2762: 0/\P dvander@2762: 02/0/\P dvander@2762: 02/13\P dvander@2762: dvander@2762: /0{0,2}ABC/I dvander@2762: dvander@2762: /\d{3,}ABC/I dvander@2762: dvander@2762: /\d*ABC/I dvander@2762: dvander@2762: /[abc]+DE/I dvander@2762: dvander@2762: /[abc]?123/I dvander@2762: 123\P dvander@2762: a\P dvander@2762: b\P dvander@2762: c\P dvander@2762: c12\P dvander@2762: c123\P dvander@2762: dvander@2762: /^(?:\d){3,5}X/I dvander@2762: 1\P dvander@2762: 123\P dvander@2762: 123X dvander@2762: 1234\P dvander@2762: 1234X dvander@2762: 12345\P dvander@2762: 12345X dvander@2762: *** Failers dvander@2762: 1X dvander@2762: 123456\P dvander@2762: dvander@2762: /abc/I>testsavedregex dvander@2762: testsavedregex dvander@2762: testsavedregex dvander@2762: testsavedregex dvander@2762: (.)*~smgI dvander@2762: \n\n\nPartner der LCO\nde\nPartner der LINEAS Consulting\nGmbH\nLINEAS Consulting GmbH Hamburg\nPartnerfirmen\n30 days\nindex,follow\n\nja\n3\nPartner\n\n\nLCO\nLINEAS Consulting\n15.10.2003\n\n\n\n\nDie Partnerfirmen der LINEAS Consulting\nGmbH\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n dvander@2762: dvander@2762: /^a/IF dvander@2762: dvander@2762: /line\nbreak/I dvander@2762: this is a line\nbreak dvander@2762: line one\nthis is a line\nbreak in the second line dvander@2762: dvander@2762: /line\nbreak/If dvander@2762: this is a line\nbreak dvander@2762: ** Failers dvander@2762: line one\nthis is a line\nbreak in the second line dvander@2762: dvander@2762: /line\nbreak/Imf dvander@2762: this is a line\nbreak dvander@2762: ** Failers dvander@2762: line one\nthis is a line\nbreak in the second line dvander@2762: dvander@2762: /ab.cd/IP dvander@2762: ab-cd dvander@2762: ab=cd dvander@2762: ** Failers dvander@2762: ab\ncd dvander@2762: dvander@2762: /ab.cd/IPs dvander@2762: ab-cd dvander@2762: ab=cd dvander@2762: ab\ncd dvander@2762: dvander@2762: /(?i)(?-i)AbCd/I dvander@2762: AbCd dvander@2762: ** Failers dvander@2762: abcd dvander@2762: dvander@2762: /a{11111111111111111111}/I dvander@2762: dvander@2762: /(){64294967295}/I dvander@2762: dvander@2762: /(){2,4294967295}/I dvander@2762: dvander@2762: "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I dvander@2762: abcdefghijklAkB dvander@2762: dvander@2762: "(?Pa)(?Pb)(?Pc)(?Pd)(?Pe)(?Pf)(?Pg)(?Ph)(?Pi)(?Pj)(?Pk)(?Pl)A\11B"I dvander@2762: abcdefghijklAkB dvander@2762: dvander@2762: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I dvander@2762: abcdefghijklAkB dvander@2762: dvander@2762: "(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)(?Pa)"I dvander@2762: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dvander@2762: dvander@2762: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I dvander@2762: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dvander@2762: dvander@2762: /[^()]*(?:\((?R)\)[^()]*)*/I dvander@2762: (this(and)that dvander@2762: (this(and)that) dvander@2762: (this(and)that)stuff dvander@2762: dvander@2762: /[^()]*(?:\((?>(?R))\)[^()]*)*/I dvander@2762: (this(and)that dvander@2762: (this(and)that) dvander@2762: dvander@2762: /[^()]*(?:\((?R)\))*[^()]*/I dvander@2762: (this(and)that dvander@2762: (this(and)that) dvander@2762: dvander@2762: /(?:\((?R)\))*[^()]*/I dvander@2762: (this(and)that dvander@2762: (this(and)that) dvander@2762: ((this)) dvander@2762: dvander@2762: /(?:\((?R)\))|[^()]*/I dvander@2762: (this(and)that dvander@2762: (this(and)that) dvander@2762: (this) dvander@2762: ((this)) dvander@2762: dvander@2762: /a(b)c/IPN dvander@2762: abc dvander@2762: dvander@2762: /a(?Pb)c/IPN dvander@2762: abc dvander@2762: dvander@2762: /\x{100}/I dvander@2762: dvander@2762: /\x{0000ff}/I dvander@2762: dvander@2762: /^((?Pa1)|(?Pa2)b)/I dvander@2762: dvander@2762: /^((?Pa1)|(?Pa2)b)/IJ dvander@2762: a1b\CA dvander@2762: a2b\CA dvander@2762: ** Failers dvander@2762: a1b\CZ\CA dvander@2762: dvander@2762: /^(?Pa)(?Pb)/IJ dvander@2762: ab\CA dvander@2762: dvander@2762: /^(?Pa)(?Pb)|cd/IJ dvander@2762: ab\CA dvander@2762: cd\CA dvander@2762: dvander@2762: /^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ dvander@2762: cdefgh\CA dvander@2762: dvander@2762: /^((?Pa1)|(?Pa2)b)/IJ dvander@2762: a1b\GA dvander@2762: a2b\GA dvander@2762: ** Failers dvander@2762: a1b\GZ\GA dvander@2762: dvander@2762: /^(?Pa)(?Pb)/IJ dvander@2762: ab\GA dvander@2762: dvander@2762: /^(?Pa)(?Pb)|cd/IJ dvander@2762: ab\GA dvander@2762: cd\GA dvander@2762: dvander@2762: /^(?Pa)(?Pb)|cd(?Pef)(?Pgh)/IJ dvander@2762: cdefgh\GA dvander@2762: dvander@2762: /(?J)^((?Pa1)|(?Pa2)b)/I dvander@2762: a1b\CA dvander@2762: a2b\CA dvander@2762: dvander@2762: /^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I dvander@2762: dvander@2762: / In this next test, J is not set at the outer level; consequently it isn't dvander@2762: set in the pattern's options; consequently pcre_get_named_substring() produces dvander@2762: a random value. /Ix dvander@2762: dvander@2762: /^(?Pa) (?J:(?Pb)(?Pc)) (?Pd)/I dvander@2762: a bc d\CA\CB\CC dvander@2762: dvander@2762: /^(?Pa)?(?(A)a|b)/I dvander@2762: aabc dvander@2762: bc dvander@2762: ** Failers dvander@2762: abc dvander@2762: dvander@2762: /(?:(?(ZZ)a|b)(?PX))+/I dvander@2762: bXaX dvander@2762: dvander@2762: /(?:(?(2y)a|b)(X))+/I dvander@2762: dvander@2762: /(?:(?(ZA)a|b)(?PX))+/I dvander@2762: dvander@2762: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?PX))+/I dvander@2762: bbXaaX dvander@2762: dvander@2762: /(?:(?(ZZ)a|\(b\))\\(?PX))+/I dvander@2762: (b)\\Xa\\X dvander@2762: dvander@2762: /(?PX|Y))+/I dvander@2762: bXXaYYaY dvander@2762: bXYaXXaX dvander@2762: dvander@2762: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?PX|Y))+/I dvander@2762: bXXaYYaY dvander@2762: dvander@2762: /\777/I dvander@2762: dvander@2762: /\s*,\s*/IS dvander@2762: \x0b,\x0b dvander@2762: \x0c,\x0d dvander@2762: dvander@2762: /^abc/Im dvander@2762: xyz\nabc dvander@2762: xyz\nabc\ dvander@2762: xyz\r\nabc\ dvander@2762: xyz\rabc\ dvander@2762: xyz\r\nabc\ dvander@2762: ** Failers dvander@2762: xyz\nabc\ dvander@2762: xyz\r\nabc\ dvander@2762: xyz\nabc\ dvander@2762: xyz\rabc\ dvander@2762: xyz\rabc\ dvander@2762: dvander@2762: /abc$/Im dvander@2762: xyzabc dvander@2762: xyzabc\n dvander@2762: xyzabc\npqr dvander@2762: xyzabc\r\ dvander@2762: xyzabc\rpqr\ dvander@2762: xyzabc\r\n\ dvander@2762: xyzabc\r\npqr\ dvander@2762: ** Failers dvander@2762: xyzabc\r dvander@2762: xyzabc\rpqr dvander@2762: xyzabc\r\n dvander@2762: xyzabc\r\npqr dvander@2762: dvander@2762: /^abc/Im dvander@2762: xyz\rabcdef dvander@2762: xyz\nabcdef\ dvander@2762: ** Failers dvander@2762: xyz\nabcdef dvander@2762: dvander@2762: /^abc/Im dvander@2762: xyz\nabcdef dvander@2762: xyz\rabcdef\ dvander@2762: ** Failers dvander@2762: xyz\rabcdef dvander@2762: dvander@2762: /^abc/Im dvander@2762: xyz\r\nabcdef dvander@2762: xyz\rabcdef\ dvander@2762: ** Failers dvander@2762: xyz\rabcdef dvander@2762: dvander@2762: /^abc/Im dvander@2762: dvander@2762: /abc/I dvander@2762: xyz\rabc\ dvander@2762: abc dvander@2762: dvander@2762: /.*/I dvander@2762: abc\ndef dvander@2762: abc\rdef dvander@2762: abc\r\ndef dvander@2762: \abc\ndef dvander@2762: \abc\rdef dvander@2762: \abc\r\ndef dvander@2762: \abc\ndef dvander@2762: \abc\rdef dvander@2762: \abc\r\ndef dvander@2762: dvander@2762: /\w+(.)(.)?def/Is dvander@2762: abc\ndef dvander@2762: abc\rdef dvander@2762: abc\r\ndef dvander@2762: dvander@2762: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I dvander@2762: /* this is a C style comment */\M dvander@2762: dvander@2762: /(?P25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I dvander@2762: dvander@2762: /()()()()()()()()()()()()()()()()()()()() dvander@2762: ()()()()()()()()()()()()()()()()()()()() dvander@2762: ()()()()()()()()()()()()()()()()()()()() dvander@2762: ()()()()()()()()()()()()()()()()()()()() dvander@2762: ()()()()()()()()()()()()()()()()()()()() dvander@2762: (.(.))/Ix dvander@2762: XY\O400 dvander@2762: dvander@2762: /(a*b|(?i:c*(?-i)d))/IS dvander@2762: dvander@2762: /()[ab]xyz/IS dvander@2762: dvander@2762: /(|)[ab]xyz/IS dvander@2762: dvander@2762: /(|c)[ab]xyz/IS dvander@2762: dvander@2762: /(|c?)[ab]xyz/IS dvander@2762: dvander@2762: /(d?|c?)[ab]xyz/IS dvander@2762: dvander@2762: /(d?|c)[ab]xyz/IS dvander@2762: dvander@2762: /^a*b\d/DZ dvander@2762: dvander@2762: /^a*+b\d/DZ dvander@2762: dvander@2762: /^a*?b\d/DZ dvander@2762: dvander@2762: /^a+A\d/DZ dvander@2762: aaaA5 dvander@2762: ** Failers dvander@2762: aaaa5 dvander@2762: dvander@2762: /^a*A\d/IiDZ dvander@2762: aaaA5 dvander@2762: aaaa5 dvander@2762: dvander@2762: /(a*|b*)[cd]/IS dvander@2762: dvander@2762: /(a+|b*)[cd]/IS dvander@2762: dvander@2762: /(a*|b+)[cd]/IS dvander@2762: dvander@2762: /(a+|b+)[cd]/IS dvander@2762: dvander@2762: /(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( dvander@2762: (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( dvander@2762: ((( dvander@2762: a dvander@2762: )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) dvander@2762: )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) dvander@2762: ))) dvander@2762: /Ix dvander@2762: large nest dvander@2762: dvander@2762: /a*\d/BZ dvander@2762: dvander@2762: /a*\D/BZ dvander@2762: dvander@2762: /0*\d/BZ dvander@2762: dvander@2762: /0*\D/BZ dvander@2762: dvander@2762: /a*\s/BZ dvander@2762: dvander@2762: /a*\S/BZ dvander@2762: dvander@2762: / *\s/BZ dvander@2762: dvander@2762: / *\S/BZ dvander@2762: dvander@2762: /a*\w/BZ dvander@2762: dvander@2762: /a*\W/BZ dvander@2762: dvander@2762: /=*\w/BZ dvander@2762: dvander@2762: /=*\W/BZ dvander@2762: dvander@2762: /\d*a/BZ dvander@2762: dvander@2762: /\d*2/BZ dvander@2762: dvander@2762: /\d*\d/BZ dvander@2762: dvander@2762: /\d*\D/BZ dvander@2762: dvander@2762: /\d*\s/BZ dvander@2762: dvander@2762: /\d*\S/BZ dvander@2762: dvander@2762: /\d*\w/BZ dvander@2762: dvander@2762: /\d*\W/BZ dvander@2762: dvander@2762: /\D*a/BZ dvander@2762: dvander@2762: /\D*2/BZ dvander@2762: dvander@2762: /\D*\d/BZ dvander@2762: dvander@2762: /\D*\D/BZ dvander@2762: dvander@2762: /\D*\s/BZ dvander@2762: dvander@2762: /\D*\S/BZ dvander@2762: dvander@2762: /\D*\w/BZ dvander@2762: dvander@2762: /\D*\W/BZ dvander@2762: dvander@2762: /\s*a/BZ dvander@2762: dvander@2762: /\s*2/BZ dvander@2762: dvander@2762: /\s*\d/BZ dvander@2762: dvander@2762: /\s*\D/BZ dvander@2762: dvander@2762: /\s*\s/BZ dvander@2762: dvander@2762: /\s*\S/BZ dvander@2762: dvander@2762: /\s*\w/BZ dvander@2762: dvander@2762: /\s*\W/BZ dvander@2762: dvander@2762: /\S*a/BZ dvander@2762: dvander@2762: /\S*2/BZ dvander@2762: dvander@2762: /\S*\d/BZ dvander@2762: dvander@2762: /\S*\D/BZ dvander@2762: dvander@2762: /\S*\s/BZ dvander@2762: dvander@2762: /\S*\S/BZ dvander@2762: dvander@2762: /\S*\w/BZ dvander@2762: dvander@2762: /\S*\W/BZ dvander@2762: dvander@2762: /\w*a/BZ dvander@2762: dvander@2762: /\w*2/BZ dvander@2762: dvander@2762: /\w*\d/BZ dvander@2762: dvander@2762: /\w*\D/BZ dvander@2762: dvander@2762: /\w*\s/BZ dvander@2762: dvander@2762: /\w*\S/BZ dvander@2762: dvander@2762: /\w*\w/BZ dvander@2762: dvander@2762: /\w*\W/BZ dvander@2762: dvander@2762: /\W*a/BZ dvander@2762: dvander@2762: /\W*2/BZ dvander@2762: dvander@2762: /\W*\d/BZ dvander@2762: dvander@2762: /\W*\D/BZ dvander@2762: dvander@2762: /\W*\s/BZ dvander@2762: dvander@2762: /\W*\S/BZ dvander@2762: dvander@2762: /\W*\w/BZ dvander@2762: dvander@2762: /\W*\W/BZ dvander@2762: dvander@2762: /[^a]+a/BZ dvander@2762: dvander@2762: /[^a]+a/BZi dvander@2762: dvander@2762: /[^a]+A/BZi dvander@2762: dvander@2762: /[^a]+b/BZ dvander@2762: dvander@2762: /[^a]+\d/BZ dvander@2762: dvander@2762: /a*[^a]/BZ dvander@2762: dvander@2762: /(?Px)(?Py)/I dvander@2762: xy\Cabc\Cxyz dvander@2762: dvander@2762: /(?x)(?'xyz'y)/I dvander@2762: xy\Cabc\Cxyz dvander@2762: dvander@2762: /(?x)(?'xyz>y)/I dvander@2762: dvander@2762: /(?P'abc'x)(?Py)/I dvander@2762: dvander@2762: /^(?:(?(ZZ)a|b)(?X))+/ dvander@2762: bXaX dvander@2762: bXbX dvander@2762: ** Failers dvander@2762: aXaX dvander@2762: aXbX dvander@2762: dvander@2762: /^(?P>abc)(?xxx)/ dvander@2762: dvander@2762: /^(?P>abc)(?x|y)/ dvander@2762: xx dvander@2762: xy dvander@2762: yy dvander@2762: yx dvander@2762: dvander@2762: /^(?P>abc)(?Px|y)/ dvander@2762: xx dvander@2762: xy dvander@2762: yy dvander@2762: yx dvander@2762: dvander@2762: /^((?(abc)a|b)(?x|y))+/ dvander@2762: bxay dvander@2762: bxby dvander@2762: ** Failers dvander@2762: axby dvander@2762: dvander@2762: /^(((?P=abc)|X)(?x|y))+/ dvander@2762: XxXxxx dvander@2762: XxXyyx dvander@2762: XxXyxx dvander@2762: ** Failers dvander@2762: x dvander@2762: dvander@2762: /^(?1)(abc)/ dvander@2762: abcabc dvander@2762: dvander@2762: /^(?:(?:\1|X)(a|b))+/ dvander@2762: Xaaa dvander@2762: Xaba dvander@2762: dvander@2762: /^[\E\Qa\E-\Qz\E]+/BZ dvander@2762: dvander@2762: /^[a\Q]bc\E]/BZ dvander@2762: dvander@2762: /^[a-\Q\E]/BZ dvander@2762: dvander@2762: /^(?P>abc)[()](?)/BZ dvander@2762: dvander@2762: /^((?(abc)y)[()](?Px))+/BZ dvander@2762: (xy)x dvander@2762: dvander@2762: /^(?P>abc)\Q()\E(?)/BZ dvander@2762: dvander@2762: /^(?P>abc)[a\Q(]\E(](?)/BZ dvander@2762: dvander@2762: /^(?P>abc) # this is (a comment) dvander@2762: (?)/BZx dvander@2762: dvander@2762: /^\W*(?:(?(?.)\W*(?&one)\W*\k|)|(?(?.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii dvander@2762: 1221 dvander@2762: Satan, oscillate my metallic sonatas! dvander@2762: A man, a plan, a canal: Panama! dvander@2762: Able was I ere I saw Elba. dvander@2762: *** Failers dvander@2762: The quick brown fox dvander@2762: dvander@2762: /(?=(\w+))\1:/I dvander@2762: abcd: dvander@2762: dvander@2762: /(?=(?'abc'\w+))\k:/I dvander@2762: abcd: dvander@2762: dvander@2762: /(?'abc'\w+):\k{2}/ dvander@2762: a:aaxyz dvander@2762: ab:ababxyz dvander@2762: ** Failers dvander@2762: a:axyz dvander@2762: ab:abxyz dvander@2762: dvander@2762: /(?'abc'a|b)(?d|e)\k{2}/J dvander@2762: adaa dvander@2762: ** Failers dvander@2762: addd dvander@2762: adbb dvander@2762: dvander@2762: /(?'abc'a|b)(?d|e)(?&abc){2}/J dvander@2762: bdaa dvander@2762: bdab dvander@2762: ** Failers dvander@2762: bddd dvander@2762: dvander@2762: /^(?a)? (?()b|c) (?('ab')d|e)/x dvander@2762: abd dvander@2762: ce dvander@2762: dvander@2762: /(?( (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x dvander@2762: abcabc1Xabc2XabcXabcabc dvander@2762: dvander@2762: /(? (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x dvander@2762: dvander@2762: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x dvander@2762: abcabc1Xabc2XabcXabcabc dvander@2762: dvander@2762: /^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) /x dvander@2762: abcd dvander@2762: dvander@2762: /(?(?&NAME_PAT))\s+(?(?&ADDRESS_PAT)) dvander@2762: (?(DEFINE) dvander@2762: (?[a-z]+) dvander@2762: (?\d+) dvander@2762: )/x dvander@2762: metcalfe 33 dvander@2762: dvander@2762: /^(?(DEFINE) abc | xyz ) /x dvander@2762: dvander@2762: /(?(DEFINE) abc) xyz/xI dvander@2762: dvander@2762: /(?(DEFINE) abc){3} xyz/x dvander@2762: dvander@2762: /(a|)*\d/ dvander@2762: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa dvander@2762: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 dvander@2762: dvander@2762: /^a.b/ dvander@2762: a\rb dvander@2762: a\nb\ dvander@2762: a\x85b\ dvander@2762: ** Failers dvander@2762: a\nb dvander@2762: a\nb\ dvander@2762: a\rb\ dvander@2762: a\rb\ dvander@2762: a\x85b\ dvander@2762: a\rb\ dvander@2762: dvander@2762: /^abc./mgx dvander@2762: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK dvander@2762: dvander@2762: /abc.$/mgx dvander@2762: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 dvander@2762: dvander@2762: /a/ dvander@2762: dvander@2762: /a/ dvander@2762: dvander@2762: /^a\Rb/ dvander@2762: a\nb dvander@2762: a\rb dvander@2762: a\r\nb dvander@2762: a\x0bb dvander@2762: a\x0cb dvander@2762: a\x85b dvander@2762: ** Failers dvander@2762: a\n\rb dvander@2762: dvander@2762: /^a\R*b/ dvander@2762: ab dvander@2762: a\nb dvander@2762: a\rb dvander@2762: a\r\nb dvander@2762: a\x0bb dvander@2762: a\x0cb dvander@2762: a\x85b dvander@2762: a\n\rb dvander@2762: a\n\r\x85\x0cb dvander@2762: dvander@2762: /^a\R+b/ dvander@2762: a\nb dvander@2762: a\rb dvander@2762: a\r\nb dvander@2762: a\x0bb dvander@2762: a\x0cb dvander@2762: a\x85b dvander@2762: a\n\rb dvander@2762: a\n\r\x85\x0cb dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /^a\R{1,3}b/ dvander@2762: a\nb dvander@2762: a\n\rb dvander@2762: a\n\r\x85b dvander@2762: a\r\n\r\nb dvander@2762: a\r\n\r\n\r\nb dvander@2762: a\n\r\n\rb dvander@2762: a\n\n\r\nb dvander@2762: ** Failers dvander@2762: a\n\n\n\rb dvander@2762: a\r dvander@2762: dvander@2762: /^a[\R]b/ dvander@2762: aRb dvander@2762: ** Failers dvander@2762: a\nb dvander@2762: dvander@2762: /(?&abc)X(?P)/I dvander@2762: abcPXP123 dvander@2762: dvander@2762: /(?1)X(?P)/I dvander@2762: abcPXP123 dvander@2762: dvander@2762: /(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ dvander@2762: 1.2.3.4 dvander@2762: 131.111.10.206 dvander@2762: 10.0.0.0 dvander@2762: ** Failers dvander@2762: 10.6 dvander@2762: 455.3.4.5 dvander@2762: dvander@2762: /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ dvander@2762: 1.2.3.4 dvander@2762: 131.111.10.206 dvander@2762: 10.0.0.0 dvander@2762: ** Failers dvander@2762: 10.6 dvander@2762: 455.3.4.5 dvander@2762: dvander@2762: /(?:a(?&abc)b)*(?x)/ dvander@2762: 123axbaxbaxbx456 dvander@2762: 123axbaxbaxb456 dvander@2762: dvander@2762: /(?:a(?&abc)b){1,5}(?x)/ dvander@2762: 123axbaxbaxbx456 dvander@2762: dvander@2762: /(?:a(?&abc)b){2,5}(?x)/ dvander@2762: 123axbaxbaxbx456 dvander@2762: dvander@2762: /(?:a(?&abc)b){2,}(?x)/ dvander@2762: 123axbaxbaxbx456 dvander@2762: dvander@2762: /(abc)(?i:(?1))/ dvander@2762: defabcabcxyz dvander@2762: DEFabcABCXYZ dvander@2762: dvander@2762: /(abc)(?:(?i)(?1))/ dvander@2762: defabcabcxyz dvander@2762: DEFabcABCXYZ dvander@2762: dvander@2762: /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ dvander@2762: ababababbbabZXXXX dvander@2762: dvander@2762: /^(a)\g-2/ dvander@2762: dvander@2762: /^(a)\g/ dvander@2762: dvander@2762: /^(a)\g{0}/ dvander@2762: dvander@2762: /^(a)\g{3/ dvander@2762: dvander@2762: /^(a)\g{4a}/ dvander@2762: dvander@2762: /^a.b/ dvander@2762: a\rb dvander@2762: *** Failers dvander@2762: a\nb dvander@2762: dvander@2762: /.+foo/ dvander@2762: afoo dvander@2762: ** Failers dvander@2762: \r\nfoo dvander@2762: \nfoo dvander@2762: dvander@2762: /.+foo/ dvander@2762: afoo dvander@2762: \nfoo dvander@2762: ** Failers dvander@2762: \r\nfoo dvander@2762: dvander@2762: /.+foo/ dvander@2762: afoo dvander@2762: ** Failers dvander@2762: \nfoo dvander@2762: \r\nfoo dvander@2762: dvander@2762: /.+foo/s dvander@2762: afoo dvander@2762: \r\nfoo dvander@2762: \nfoo dvander@2762: dvander@2762: /^$/mg dvander@2762: abc\r\rxyz dvander@2762: abc\n\rxyz dvander@2762: ** Failers dvander@2762: abc\r\nxyz dvander@2762: dvander@2762: /(?m)^$/g+ dvander@2762: abc\r\n\r\n dvander@2762: dvander@2762: /(?m)^$|^\r\n/g+ dvander@2762: abc\r\n\r\n dvander@2762: dvander@2762: /(?m)$/g+ dvander@2762: abc\r\n\r\n dvander@2762: dvander@2762: /abc.$/mgx dvander@2762: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 dvander@2762: dvander@2762: /^X/m dvander@2762: XABC dvander@2762: ** Failers dvander@2762: XABC\B dvander@2762: dvander@2762: /(ab|c)(?-1)/BZ dvander@2762: abc dvander@2762: dvander@2762: /xy(?+1)(abc)/BZ dvander@2762: xyabcabc dvander@2762: ** Failers dvander@2762: xyabc dvander@2762: dvander@2762: /x(?-0)y/ dvander@2762: dvander@2762: /x(?-1)y/ dvander@2762: dvander@2762: /x(?+0)y/ dvander@2762: dvander@2762: /x(?+1)y/ dvander@2762: dvander@2762: /^(abc)?(?(-1)X|Y)/BZ dvander@2762: abcX dvander@2762: Y dvander@2762: ** Failers dvander@2762: abcY dvander@2762: dvander@2762: /^((?(+1)X|Y)(abc))+/BZ dvander@2762: YabcXabc dvander@2762: YabcXabcXabc dvander@2762: ** Failers dvander@2762: XabcXabc dvander@2762: dvander@2762: /(?(-1)a)/BZ dvander@2762: dvander@2762: /((?(-1)a))/BZ dvander@2762: dvander@2762: /((?(-2)a))/BZ dvander@2762: dvander@2762: /^(?(+1)X|Y)(.)/BZ dvander@2762: Y! dvander@2762: dvander@2762: /(foo)\Kbar/ dvander@2762: foobar dvander@2762: dvander@2762: /(foo)(\Kbar|baz)/ dvander@2762: foobar dvander@2762: foobaz dvander@2762: dvander@2762: /(foo\Kbar)baz/ dvander@2762: foobarbaz dvander@2762: dvander@2762: /(?tom|bon)-\k{A}/ dvander@2762: tom-tom dvander@2762: bon-bon dvander@2762: ** Failers dvander@2762: tom-bon dvander@2762: dvander@2762: /(?tom|bon)-\g{A}/ dvander@2762: tom-tom dvander@2762: bon-bon dvander@2762: dvander@2762: /\g{A/ dvander@2762: dvander@2762: /(?|(abc)|(xyz))/BZ dvander@2762: >abc< dvander@2762: >xyz< dvander@2762: dvander@2762: /(x)(?|(abc)|(xyz))(x)/BZ dvander@2762: xabcx dvander@2762: xxyzx dvander@2762: dvander@2762: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ dvander@2762: xabcpqrx dvander@2762: xxyzx dvander@2762: dvander@2762: /(?|(abc)|(xyz))\1/ dvander@2762: abcabc dvander@2762: xyzxyz dvander@2762: ** Failers dvander@2762: abcxyz dvander@2762: xyzabc dvander@2762: dvander@2762: /(?|(abc)|(xyz))(?1)/ dvander@2762: abcabc dvander@2762: xyzabc dvander@2762: ** Failers dvander@2762: xyzxyz dvander@2762: dvander@2762: /\H\h\V\v/ dvander@2762: X X\x0a dvander@2762: X\x09X\x0b dvander@2762: ** Failers dvander@2762: \xa0 X\x0a dvander@2762: dvander@2762: /\H*\h+\V?\v{3,4}/ dvander@2762: \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a dvander@2762: \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a dvander@2762: \x09\x20\xa0\x0a\x0b\x0c dvander@2762: ** Failers dvander@2762: \x09\x20\xa0\x0a\x0b dvander@2762: dvander@2762: /\H{3,4}/ dvander@2762: XY ABCDE dvander@2762: XY PQR ST dvander@2762: dvander@2762: /.\h{3,4}./ dvander@2762: XY AB PQRS dvander@2762: dvander@2762: /\h*X\h?\H+Y\H?Z/ dvander@2762: >XNNNYZ dvander@2762: > X NYQZ dvander@2762: ** Failers dvander@2762: >XYZ dvander@2762: > X NY Z dvander@2762: dvander@2762: /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ dvander@2762: >XY\x0aZ\x0aA\x0bNN\x0c dvander@2762: >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c dvander@2762: dvander@2762: /[\h]/BZ dvander@2762: >\x09< dvander@2762: dvander@2762: /[\h]+/BZ dvander@2762: >\x09\x20\xa0< dvander@2762: dvander@2762: /[\v]/BZ dvander@2762: dvander@2762: /[\H]/BZ dvander@2762: dvander@2762: /[^\h]/BZ dvander@2762: dvander@2762: /[\V]/BZ dvander@2762: dvander@2762: /[\x0a\V]/BZ dvander@2762: dvander@2762: /\H++X/BZ dvander@2762: ** Failers dvander@2762: XXXX dvander@2762: dvander@2762: /\H+\hY/BZ dvander@2762: XXXX Y dvander@2762: dvander@2762: /\H+ Y/BZ dvander@2762: dvander@2762: /\h+A/BZ dvander@2762: dvander@2762: /\v*B/BZ dvander@2762: dvander@2762: /\V+\x0a/BZ dvander@2762: dvander@2762: /A+\h/BZ dvander@2762: dvander@2762: / *\H/BZ dvander@2762: dvander@2762: /A*\v/BZ dvander@2762: dvander@2762: /\x0b*\V/BZ dvander@2762: dvander@2762: /\d+\h/BZ dvander@2762: dvander@2762: /\d*\v/BZ dvander@2762: dvander@2762: /S+\h\S+\v/BZ dvander@2762: dvander@2762: /\w{3,}\h\w+\v/BZ dvander@2762: dvander@2762: /\h+\d\h+\w\h+\S\h+\H/BZ dvander@2762: dvander@2762: /\v+\d\v+\w\v+\S\v+\V/BZ dvander@2762: dvander@2762: /\H+\h\H+\d/BZ dvander@2762: dvander@2762: /\V+\v\V+\w/BZ dvander@2762: dvander@2762: /\( (?: [^()]* | (?R) )* \)/x dvander@2762: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0) dvander@2762: dvander@2762: /[\E]AAA/ dvander@2762: dvander@2762: /[\Q\E]AAA/ dvander@2762: dvander@2762: /[^\E]AAA/ dvander@2762: dvander@2762: /[^\Q\E]AAA/ dvander@2762: dvander@2762: /[\E^]AAA/ dvander@2762: dvander@2762: /[\Q\E^]AAA/ dvander@2762: dvander@2762: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ dvander@2762: dvander@2762: /^a+(*FAIL)/ dvander@2762: aaaaaa dvander@2762: dvander@2762: /a+b?c+(*FAIL)/ dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*PRUNE)c+(*FAIL)/ dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*COMMIT)c+(*FAIL)/ dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*SKIP)c+(*FAIL)/ dvander@2762: aaabcccaaabccc dvander@2762: dvander@2762: /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ dvander@2762: aaaxxxxxx dvander@2762: aaa++++++ dvander@2762: bbbxxxxx dvander@2762: bbb+++++ dvander@2762: cccxxxx dvander@2762: ccc++++ dvander@2762: dddddddd dvander@2762: dvander@2762: /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ dvander@2762: aaaxxxxxx dvander@2762: aaa++++++ dvander@2762: bbbxxxxx dvander@2762: bbb+++++ dvander@2762: cccxxxx dvander@2762: ccc++++ dvander@2762: dddddddd dvander@2762: dvander@2762: /a+b?(*THEN)c+(*FAIL)/ dvander@2762: aaabccc dvander@2762: dvander@2762: /(A (A|B(*ACCEPT)|C) D)(E)/x dvander@2762: ABX dvander@2762: AADE dvander@2762: ACDE dvander@2762: ** Failers dvander@2762: AD dvander@2762: dvander@2762: /^a+(*FAIL)/C dvander@2762: aaaaaa dvander@2762: dvander@2762: /a+b?c+(*FAIL)/C dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*PRUNE)c+(*FAIL)/C dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*COMMIT)c+(*FAIL)/C dvander@2762: aaabccc dvander@2762: dvander@2762: /a+b?(*SKIP)c+(*FAIL)/C dvander@2762: aaabcccaaabccc dvander@2762: dvander@2762: /a+b?(*THEN)c+(*FAIL)/C dvander@2762: aaabccc dvander@2762: dvander@2762: /a(*PRUNE:XXX)b/ dvander@2762: dvander@2762: /a(*MARK)b/ dvander@2762: dvander@2762: /(?i:A{1,}\6666666666)/ dvander@2762: dvander@2762: /\g6666666666/ dvander@2762: dvander@2762: /[\g6666666666]/ dvander@2762: dvander@2762: /(?1)\c[/ dvander@2762: dvander@2762: /.+A/ dvander@2762: \r\nA dvander@2762: dvander@2762: /\nA/ dvander@2762: \r\nA dvander@2762: dvander@2762: /[\r\n]A/ dvander@2762: \r\nA dvander@2762: dvander@2762: /(\r|\n)A/ dvander@2762: \r\nA dvander@2762: dvander@2762: /a(*CR)b/ dvander@2762: dvander@2762: /(*CR)a.b/ dvander@2762: a\nb dvander@2762: ** Failers dvander@2762: a\rb dvander@2762: dvander@2762: /(*CR)a.b/ dvander@2762: a\nb dvander@2762: ** Failers dvander@2762: a\rb dvander@2762: dvander@2762: /(*LF)a.b/ dvander@2762: a\rb dvander@2762: ** Failers dvander@2762: a\nb dvander@2762: dvander@2762: /(*CRLF)a.b/ dvander@2762: a\rb dvander@2762: a\nb dvander@2762: ** Failers dvander@2762: a\r\nb dvander@2762: dvander@2762: /(*ANYCRLF)a.b/ dvander@2762: ** Failers dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: dvander@2762: /(*ANY)a.b/ dvander@2762: ** Failers dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: a\x85b dvander@2762: dvander@2762: /a\Rb/I dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: ** Failers dvander@2762: a\x85b dvander@2762: a\x0bb dvander@2762: dvander@2762: /a\Rb/I dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: a\x85b dvander@2762: a\x0bb dvander@2762: ** Failers dvander@2762: a\x85b\ dvander@2762: a\x0bb\ dvander@2762: dvander@2762: /a\R?b/I dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: ** Failers dvander@2762: a\x85b dvander@2762: a\x0bb dvander@2762: dvander@2762: /a\R?b/I dvander@2762: a\rb dvander@2762: a\nb dvander@2762: a\r\nb dvander@2762: a\x85b dvander@2762: a\x0bb dvander@2762: ** Failers dvander@2762: a\x85b\ dvander@2762: a\x0bb\ dvander@2762: dvander@2762: /a\R{2,4}b/I dvander@2762: a\r\n\nb dvander@2762: a\n\r\rb dvander@2762: a\r\n\r\n\r\n\r\nb dvander@2762: ** Failers dvander@2762: a\x85\85b dvander@2762: a\x0b\0bb dvander@2762: dvander@2762: /a\R{2,4}b/I dvander@2762: a\r\rb dvander@2762: a\n\n\nb dvander@2762: a\r\n\n\r\rb dvander@2762: a\x85\85b dvander@2762: a\x0b\0bb dvander@2762: ** Failers dvander@2762: a\r\r\r\r\rb dvander@2762: a\x85\85b\ dvander@2762: a\x0b\0bb\ dvander@2762: dvander@2762: /(*BSR_ANYCRLF)a\Rb/I dvander@2762: a\nb dvander@2762: a\rb dvander@2762: dvander@2762: /(*BSR_UNICODE)a\Rb/I dvander@2762: a\x85b dvander@2762: dvander@2762: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I dvander@2762: a\nb dvander@2762: a\rb dvander@2762: dvander@2762: /(*CRLF)(*BSR_UNICODE)a\Rb/I dvander@2762: a\x85b dvander@2762: dvander@2762: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I dvander@2762: dvander@2762: /(?)(?&)/ dvander@2762: dvander@2762: /(?)(?&a)/ dvander@2762: dvander@2762: /(?)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ dvander@2762: dvander@2762: /(?+-a)/ dvander@2762: dvander@2762: /(?-+a)/ dvander@2762: dvander@2762: /(?(-1))/ dvander@2762: dvander@2762: /(?(+10))/ dvander@2762: dvander@2762: /(?(10))/ dvander@2762: dvander@2762: /(?(+2))()()/ dvander@2762: dvander@2762: /(?(2))()()/ dvander@2762: dvander@2762: /\k''/ dvander@2762: dvander@2762: /\k<>/ dvander@2762: dvander@2762: /\k{}/ dvander@2762: dvander@2762: /(?P=)/ dvander@2762: dvander@2762: /(?P>)/ dvander@2762: dvander@2762: /(?!\w)(?R)/ dvander@2762: dvander@2762: /(?=\w)(?R)/ dvander@2762: dvander@2762: /(?a|b\gc)/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /^(?a|b\g'name'c)/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /^(a|b\g<1>c)/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /^(a|b\g'1'c)/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /^(a|b\g'-1'c)/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /(^(a|b\g<-1>c))/ dvander@2762: aaaa dvander@2762: bacxxx dvander@2762: bbaccxxx dvander@2762: bbbacccxx dvander@2762: dvander@2762: /(^(a|b\g<-1'c))/ dvander@2762: dvander@2762: /(^(a|b\g{-1}))/ dvander@2762: bacxxx dvander@2762: dvander@2762: /(?-i:\g)(?i:(?a))/ dvander@2762: XaaX dvander@2762: XAAX dvander@2762: dvander@2762: /(?i:\g)(?-i:(?a))/ dvander@2762: XaaX dvander@2762: ** Failers dvander@2762: XAAX dvander@2762: dvander@2762: /(?-i:\g<+1>)(?i:(a))/ dvander@2762: XaaX dvander@2762: XAAX dvander@2762: dvander@2762: /(?=(?(?#simplesyntax)\$(?[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g)\]|->\g(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g(?\[(?:\g|'(?:\\.|[^'\\])*'|"(?:\g|\\.|[^"\\])*")\])?|\g|\$\{\g\})\}|(?#complexsyntax)\{(?\$(?\g(\g*|\(.*?\))?)(?:->\g)*|\$\g|\$\{\g\})\}))\{/ dvander@2762: dvander@2762: /(?a|b|c)\g*/ dvander@2762: abc dvander@2762: accccbbb dvander@2762: dvander@2762: /^(?+1)(?x|y){0}z/ dvander@2762: xzxx dvander@2762: yzyy dvander@2762: ** Failers dvander@2762: xxz dvander@2762: dvander@2762: /(\3)(\1)(a)/ dvander@2762: cat dvander@2762: dvander@2762: /(\3)(\1)(a)/ dvander@2762: cat dvander@2762: dvander@2762: /TA]/ dvander@2762: The ACTA] comes dvander@2762: dvander@2762: /TA]/ dvander@2762: The ACTA] comes dvander@2762: dvander@2762: /(?2)[]a()b](abc)/ dvander@2762: abcbabc dvander@2762: dvander@2762: /(?2)[^]a()b](abc)/ dvander@2762: abcbabc dvander@2762: dvander@2762: /(?1)[]a()b](abc)/ dvander@2762: abcbabc dvander@2762: ** Failers dvander@2762: abcXabc dvander@2762: dvander@2762: /(?1)[^]a()b](abc)/ dvander@2762: abcXabc dvander@2762: ** Failers dvander@2762: abcbabc dvander@2762: dvander@2762: /(?2)[]a()b](abc)(xyz)/ dvander@2762: xyzbabcxyz dvander@2762: dvander@2762: /(?&N)[]a(?)](?abc)/ dvander@2762: abc)](abc)/ dvander@2762: abc dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /a[]+b/ dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /a[]*+b/ dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /a[^]b/ dvander@2762: aXb dvander@2762: a\nb dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /a[^]+b/ dvander@2762: aXb dvander@2762: a\nX\nXb dvander@2762: ** Failers dvander@2762: ab dvander@2762: dvander@2762: /a(?!)+b/ dvander@2762: dvander@2762: /a(*FAIL)+b/ dvander@2762: dvander@2762: /(abc|pqr|123){0}[xyz]/SI dvander@2762: dvander@2762: /(?(?=.*b)b|^)/CI dvander@2762: adc dvander@2762: abc dvander@2762: dvander@2762: /(?(?=b).*b|^d)/I dvander@2762: dvander@2762: /(?(?=.*b).*b|^d)/I dvander@2762: dvander@2762: /a?|b?/P dvander@2762: abc dvander@2762: ** Failers dvander@2762: ddd\N dvander@2762: dvander@2762: /xyz/C dvander@2762: xyz dvander@2762: abcxyz dvander@2762: abcxyz\Y dvander@2762: ** Failers dvander@2762: abc dvander@2762: abc\Y dvander@2762: abcxypqr dvander@2762: abcxypqr\Y dvander@2762: dvander@2762: /^"((?(?=[a])[^"])|b)*"$/C dvander@2762: "ab" dvander@2762: dvander@2762: /^"((?(?=[a])[^"])|b)*"$/ dvander@2762: "ab" dvander@2762: dvander@2762: /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ dvander@2762: XYabcdY dvander@2762: dvander@2762: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/ dvander@2762: XYabcdY dvander@2762: dvander@2762: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?Y)/ dvander@2762: XYabcdY dvander@2762: dvander@2762: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ dvander@2762: XYabcdY dvander@2762: dvander@2762: /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ dvander@2762: XYabcdY dvander@2762: dvander@2762: /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ dvander@2762: XYabcdY dvander@2762: dvander@2762: / End of testinput2 /