1*22dc650dSSadaf Ebrahimi# This set of tests is for features that are compatible with all versions of 2*22dc650dSSadaf Ebrahimi# Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and 3*22dc650dSSadaf Ebrahimi# 32-bit PCRE libraries, and also using the perltest.sh script. 4*22dc650dSSadaf Ebrahimi 5*22dc650dSSadaf Ebrahimi# WARNING: Use only / as the pattern delimiter. Although pcre2test supports 6*22dc650dSSadaf Ebrahimi# a number of delimiters, all those other than / give problems with the 7*22dc650dSSadaf Ebrahimi# perltest.sh script. 8*22dc650dSSadaf Ebrahimi 9*22dc650dSSadaf Ebrahimi#forbid_utf 10*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf 11*22dc650dSSadaf Ebrahimi#perltest 12*22dc650dSSadaf Ebrahimi 13*22dc650dSSadaf Ebrahimi/the quick brown fox/ 14*22dc650dSSadaf Ebrahimi the quick brown fox 15*22dc650dSSadaf Ebrahimi 0: the quick brown fox 16*22dc650dSSadaf Ebrahimi What do you know about the quick brown fox? 17*22dc650dSSadaf Ebrahimi 0: the quick brown fox 18*22dc650dSSadaf Ebrahimi\= Expect no match 19*22dc650dSSadaf Ebrahimi The quick brown FOX 20*22dc650dSSadaf EbrahimiNo match 21*22dc650dSSadaf Ebrahimi What do you know about THE QUICK BROWN FOX? 22*22dc650dSSadaf EbrahimiNo match 23*22dc650dSSadaf Ebrahimi 24*22dc650dSSadaf Ebrahimi/The quick brown fox/i 25*22dc650dSSadaf Ebrahimi the quick brown fox 26*22dc650dSSadaf Ebrahimi 0: the quick brown fox 27*22dc650dSSadaf Ebrahimi The quick brown FOX 28*22dc650dSSadaf Ebrahimi 0: The quick brown FOX 29*22dc650dSSadaf Ebrahimi What do you know about the quick brown fox? 30*22dc650dSSadaf Ebrahimi 0: the quick brown fox 31*22dc650dSSadaf Ebrahimi What do you know about THE QUICK BROWN FOX? 32*22dc650dSSadaf Ebrahimi 0: THE QUICK BROWN FOX 33*22dc650dSSadaf Ebrahimi 34*22dc650dSSadaf Ebrahimi/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ 35*22dc650dSSadaf Ebrahimi abcd\t\n\r\f\a\e9;\$\\?caxyz 36*22dc650dSSadaf Ebrahimi 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz 37*22dc650dSSadaf Ebrahimi 38*22dc650dSSadaf Ebrahimi/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ 39*22dc650dSSadaf Ebrahimi abxyzpqrrrabbxyyyypqAzz 40*22dc650dSSadaf Ebrahimi 0: abxyzpqrrrabbxyyyypqAzz 41*22dc650dSSadaf Ebrahimi abxyzpqrrrabbxyyyypqAzz 42*22dc650dSSadaf Ebrahimi 0: abxyzpqrrrabbxyyyypqAzz 43*22dc650dSSadaf Ebrahimi aabxyzpqrrrabbxyyyypqAzz 44*22dc650dSSadaf Ebrahimi 0: aabxyzpqrrrabbxyyyypqAzz 45*22dc650dSSadaf Ebrahimi aaabxyzpqrrrabbxyyyypqAzz 46*22dc650dSSadaf Ebrahimi 0: aaabxyzpqrrrabbxyyyypqAzz 47*22dc650dSSadaf Ebrahimi aaaabxyzpqrrrabbxyyyypqAzz 48*22dc650dSSadaf Ebrahimi 0: aaaabxyzpqrrrabbxyyyypqAzz 49*22dc650dSSadaf Ebrahimi abcxyzpqrrrabbxyyyypqAzz 50*22dc650dSSadaf Ebrahimi 0: abcxyzpqrrrabbxyyyypqAzz 51*22dc650dSSadaf Ebrahimi aabcxyzpqrrrabbxyyyypqAzz 52*22dc650dSSadaf Ebrahimi 0: aabcxyzpqrrrabbxyyyypqAzz 53*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypAzz 54*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypAzz 55*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqAzz 56*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqAzz 57*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqAzz 58*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqAzz 59*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqqAzz 60*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqAzz 61*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqqqAzz 62*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqAzz 63*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqqqqAzz 64*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz 65*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqqqqqAzz 66*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz 67*22dc650dSSadaf Ebrahimi aaaabcxyzpqrrrabbxyyyypqAzz 68*22dc650dSSadaf Ebrahimi 0: aaaabcxyzpqrrrabbxyyyypqAzz 69*22dc650dSSadaf Ebrahimi abxyzzpqrrrabbxyyyypqAzz 70*22dc650dSSadaf Ebrahimi 0: abxyzzpqrrrabbxyyyypqAzz 71*22dc650dSSadaf Ebrahimi aabxyzzzpqrrrabbxyyyypqAzz 72*22dc650dSSadaf Ebrahimi 0: aabxyzzzpqrrrabbxyyyypqAzz 73*22dc650dSSadaf Ebrahimi aaabxyzzzzpqrrrabbxyyyypqAzz 74*22dc650dSSadaf Ebrahimi 0: aaabxyzzzzpqrrrabbxyyyypqAzz 75*22dc650dSSadaf Ebrahimi aaaabxyzzzzpqrrrabbxyyyypqAzz 76*22dc650dSSadaf Ebrahimi 0: aaaabxyzzzzpqrrrabbxyyyypqAzz 77*22dc650dSSadaf Ebrahimi abcxyzzpqrrrabbxyyyypqAzz 78*22dc650dSSadaf Ebrahimi 0: abcxyzzpqrrrabbxyyyypqAzz 79*22dc650dSSadaf Ebrahimi aabcxyzzzpqrrrabbxyyyypqAzz 80*22dc650dSSadaf Ebrahimi 0: aabcxyzzzpqrrrabbxyyyypqAzz 81*22dc650dSSadaf Ebrahimi aaabcxyzzzzpqrrrabbxyyyypqAzz 82*22dc650dSSadaf Ebrahimi 0: aaabcxyzzzzpqrrrabbxyyyypqAzz 83*22dc650dSSadaf Ebrahimi aaaabcxyzzzzpqrrrabbxyyyypqAzz 84*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz 85*22dc650dSSadaf Ebrahimi aaaabcxyzzzzpqrrrabbbxyyyypqAzz 86*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz 87*22dc650dSSadaf Ebrahimi aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 88*22dc650dSSadaf Ebrahimi 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 89*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypABzz 90*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypABzz 91*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypABBzz 92*22dc650dSSadaf Ebrahimi 0: aaabcxyzpqrrrabbxyyyypABBzz 93*22dc650dSSadaf Ebrahimi >>>aaabxyzpqrrrabbxyyyypqAzz 94*22dc650dSSadaf Ebrahimi 0: aaabxyzpqrrrabbxyyyypqAzz 95*22dc650dSSadaf Ebrahimi >aaaabxyzpqrrrabbxyyyypqAzz 96*22dc650dSSadaf Ebrahimi 0: aaaabxyzpqrrrabbxyyyypqAzz 97*22dc650dSSadaf Ebrahimi >>>>abcxyzpqrrrabbxyyyypqAzz 98*22dc650dSSadaf Ebrahimi 0: abcxyzpqrrrabbxyyyypqAzz 99*22dc650dSSadaf Ebrahimi\= Expect no match 100*22dc650dSSadaf Ebrahimi abxyzpqrrabbxyyyypqAzz 101*22dc650dSSadaf EbrahimiNo match 102*22dc650dSSadaf Ebrahimi abxyzpqrrrrabbxyyyypqAzz 103*22dc650dSSadaf EbrahimiNo match 104*22dc650dSSadaf Ebrahimi abxyzpqrrrabxyyyypqAzz 105*22dc650dSSadaf EbrahimiNo match 106*22dc650dSSadaf Ebrahimi aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz 107*22dc650dSSadaf EbrahimiNo match 108*22dc650dSSadaf Ebrahimi aaaabcxyzzzzpqrrrabbbxyyypqAzz 109*22dc650dSSadaf EbrahimiNo match 110*22dc650dSSadaf Ebrahimi aaabcxyzpqrrrabbxyyyypqqqqqqqAzz 111*22dc650dSSadaf EbrahimiNo match 112*22dc650dSSadaf Ebrahimi 113*22dc650dSSadaf Ebrahimi/^(abc){1,2}zz/ 114*22dc650dSSadaf Ebrahimi abczz 115*22dc650dSSadaf Ebrahimi 0: abczz 116*22dc650dSSadaf Ebrahimi 1: abc 117*22dc650dSSadaf Ebrahimi abcabczz 118*22dc650dSSadaf Ebrahimi 0: abcabczz 119*22dc650dSSadaf Ebrahimi 1: abc 120*22dc650dSSadaf Ebrahimi\= Expect no match 121*22dc650dSSadaf Ebrahimi zz 122*22dc650dSSadaf EbrahimiNo match 123*22dc650dSSadaf Ebrahimi abcabcabczz 124*22dc650dSSadaf EbrahimiNo match 125*22dc650dSSadaf Ebrahimi >>abczz 126*22dc650dSSadaf EbrahimiNo match 127*22dc650dSSadaf Ebrahimi 128*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/ 129*22dc650dSSadaf Ebrahimi bc 130*22dc650dSSadaf Ebrahimi 0: bc 131*22dc650dSSadaf Ebrahimi 1: b 132*22dc650dSSadaf Ebrahimi bbc 133*22dc650dSSadaf Ebrahimi 0: bbc 134*22dc650dSSadaf Ebrahimi 1: b 135*22dc650dSSadaf Ebrahimi bbbc 136*22dc650dSSadaf Ebrahimi 0: bbbc 137*22dc650dSSadaf Ebrahimi 1: bb 138*22dc650dSSadaf Ebrahimi bac 139*22dc650dSSadaf Ebrahimi 0: bac 140*22dc650dSSadaf Ebrahimi 1: a 141*22dc650dSSadaf Ebrahimi bbac 142*22dc650dSSadaf Ebrahimi 0: bbac 143*22dc650dSSadaf Ebrahimi 1: a 144*22dc650dSSadaf Ebrahimi aac 145*22dc650dSSadaf Ebrahimi 0: aac 146*22dc650dSSadaf Ebrahimi 1: a 147*22dc650dSSadaf Ebrahimi abbbbbbbbbbbc 148*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbc 149*22dc650dSSadaf Ebrahimi 1: bbbbbbbbbbb 150*22dc650dSSadaf Ebrahimi bbbbbbbbbbbac 151*22dc650dSSadaf Ebrahimi 0: bbbbbbbbbbbac 152*22dc650dSSadaf Ebrahimi 1: a 153*22dc650dSSadaf Ebrahimi\= Expect no match 154*22dc650dSSadaf Ebrahimi aaac 155*22dc650dSSadaf EbrahimiNo match 156*22dc650dSSadaf Ebrahimi abbbbbbbbbbbac 157*22dc650dSSadaf EbrahimiNo match 158*22dc650dSSadaf Ebrahimi 159*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}c/ 160*22dc650dSSadaf Ebrahimi bc 161*22dc650dSSadaf Ebrahimi 0: bc 162*22dc650dSSadaf Ebrahimi 1: b 163*22dc650dSSadaf Ebrahimi bbc 164*22dc650dSSadaf Ebrahimi 0: bbc 165*22dc650dSSadaf Ebrahimi 1: bb 166*22dc650dSSadaf Ebrahimi bbbc 167*22dc650dSSadaf Ebrahimi 0: bbbc 168*22dc650dSSadaf Ebrahimi 1: bbb 169*22dc650dSSadaf Ebrahimi bac 170*22dc650dSSadaf Ebrahimi 0: bac 171*22dc650dSSadaf Ebrahimi 1: a 172*22dc650dSSadaf Ebrahimi bbac 173*22dc650dSSadaf Ebrahimi 0: bbac 174*22dc650dSSadaf Ebrahimi 1: a 175*22dc650dSSadaf Ebrahimi aac 176*22dc650dSSadaf Ebrahimi 0: aac 177*22dc650dSSadaf Ebrahimi 1: a 178*22dc650dSSadaf Ebrahimi abbbbbbbbbbbc 179*22dc650dSSadaf Ebrahimi 0: abbbbbbbbbbbc 180*22dc650dSSadaf Ebrahimi 1: bbbbbbbbbbb 181*22dc650dSSadaf Ebrahimi bbbbbbbbbbbac 182*22dc650dSSadaf Ebrahimi 0: bbbbbbbbbbbac 183*22dc650dSSadaf Ebrahimi 1: a 184*22dc650dSSadaf Ebrahimi\= Expect no match 185*22dc650dSSadaf Ebrahimi aaac 186*22dc650dSSadaf EbrahimiNo match 187*22dc650dSSadaf Ebrahimi abbbbbbbbbbbac 188*22dc650dSSadaf EbrahimiNo match 189*22dc650dSSadaf Ebrahimi 190*22dc650dSSadaf Ebrahimi/^(ba|b*){1,2}?bc/ 191*22dc650dSSadaf Ebrahimi babc 192*22dc650dSSadaf Ebrahimi 0: babc 193*22dc650dSSadaf Ebrahimi 1: ba 194*22dc650dSSadaf Ebrahimi bbabc 195*22dc650dSSadaf Ebrahimi 0: bbabc 196*22dc650dSSadaf Ebrahimi 1: ba 197*22dc650dSSadaf Ebrahimi bababc 198*22dc650dSSadaf Ebrahimi 0: bababc 199*22dc650dSSadaf Ebrahimi 1: ba 200*22dc650dSSadaf Ebrahimi\= Expect no match 201*22dc650dSSadaf Ebrahimi bababbc 202*22dc650dSSadaf EbrahimiNo match 203*22dc650dSSadaf Ebrahimi babababc 204*22dc650dSSadaf EbrahimiNo match 205*22dc650dSSadaf Ebrahimi 206*22dc650dSSadaf Ebrahimi/^\ca\cA\c[;\c:/ 207*22dc650dSSadaf Ebrahimi \x01\x01\e;z 208*22dc650dSSadaf Ebrahimi 0: \x01\x01\x1b;z 209*22dc650dSSadaf Ebrahimi 210*22dc650dSSadaf Ebrahimi/^[ab\]cde]/ 211*22dc650dSSadaf Ebrahimi athing 212*22dc650dSSadaf Ebrahimi 0: a 213*22dc650dSSadaf Ebrahimi bthing 214*22dc650dSSadaf Ebrahimi 0: b 215*22dc650dSSadaf Ebrahimi ]thing 216*22dc650dSSadaf Ebrahimi 0: ] 217*22dc650dSSadaf Ebrahimi cthing 218*22dc650dSSadaf Ebrahimi 0: c 219*22dc650dSSadaf Ebrahimi dthing 220*22dc650dSSadaf Ebrahimi 0: d 221*22dc650dSSadaf Ebrahimi ething 222*22dc650dSSadaf Ebrahimi 0: e 223*22dc650dSSadaf Ebrahimi\= Expect no match 224*22dc650dSSadaf Ebrahimi fthing 225*22dc650dSSadaf EbrahimiNo match 226*22dc650dSSadaf Ebrahimi [thing 227*22dc650dSSadaf EbrahimiNo match 228*22dc650dSSadaf Ebrahimi \\thing 229*22dc650dSSadaf EbrahimiNo match 230*22dc650dSSadaf Ebrahimi 231*22dc650dSSadaf Ebrahimi/^[]cde]/ 232*22dc650dSSadaf Ebrahimi ]thing 233*22dc650dSSadaf Ebrahimi 0: ] 234*22dc650dSSadaf Ebrahimi cthing 235*22dc650dSSadaf Ebrahimi 0: c 236*22dc650dSSadaf Ebrahimi dthing 237*22dc650dSSadaf Ebrahimi 0: d 238*22dc650dSSadaf Ebrahimi ething 239*22dc650dSSadaf Ebrahimi 0: e 240*22dc650dSSadaf Ebrahimi\= Expect no match 241*22dc650dSSadaf Ebrahimi athing 242*22dc650dSSadaf EbrahimiNo match 243*22dc650dSSadaf Ebrahimi fthing 244*22dc650dSSadaf EbrahimiNo match 245*22dc650dSSadaf Ebrahimi 246*22dc650dSSadaf Ebrahimi/^[^ab\]cde]/ 247*22dc650dSSadaf Ebrahimi fthing 248*22dc650dSSadaf Ebrahimi 0: f 249*22dc650dSSadaf Ebrahimi [thing 250*22dc650dSSadaf Ebrahimi 0: [ 251*22dc650dSSadaf Ebrahimi \\thing 252*22dc650dSSadaf Ebrahimi 0: \ 253*22dc650dSSadaf Ebrahimi\= Expect no match 254*22dc650dSSadaf Ebrahimi athing 255*22dc650dSSadaf EbrahimiNo match 256*22dc650dSSadaf Ebrahimi bthing 257*22dc650dSSadaf EbrahimiNo match 258*22dc650dSSadaf Ebrahimi ]thing 259*22dc650dSSadaf EbrahimiNo match 260*22dc650dSSadaf Ebrahimi cthing 261*22dc650dSSadaf EbrahimiNo match 262*22dc650dSSadaf Ebrahimi dthing 263*22dc650dSSadaf EbrahimiNo match 264*22dc650dSSadaf Ebrahimi ething 265*22dc650dSSadaf EbrahimiNo match 266*22dc650dSSadaf Ebrahimi 267*22dc650dSSadaf Ebrahimi/^[^]cde]/ 268*22dc650dSSadaf Ebrahimi athing 269*22dc650dSSadaf Ebrahimi 0: a 270*22dc650dSSadaf Ebrahimi fthing 271*22dc650dSSadaf Ebrahimi 0: f 272*22dc650dSSadaf Ebrahimi\= Expect no match 273*22dc650dSSadaf Ebrahimi ]thing 274*22dc650dSSadaf EbrahimiNo match 275*22dc650dSSadaf Ebrahimi cthing 276*22dc650dSSadaf EbrahimiNo match 277*22dc650dSSadaf Ebrahimi dthing 278*22dc650dSSadaf EbrahimiNo match 279*22dc650dSSadaf Ebrahimi ething 280*22dc650dSSadaf EbrahimiNo match 281*22dc650dSSadaf Ebrahimi 282*22dc650dSSadaf Ebrahimi/^\�/ 283*22dc650dSSadaf Ebrahimi � 284*22dc650dSSadaf Ebrahimi 0: \x81 285*22dc650dSSadaf Ebrahimi 286*22dc650dSSadaf Ebrahimi/^�/ 287*22dc650dSSadaf Ebrahimi � 288*22dc650dSSadaf Ebrahimi 0: \xff 289*22dc650dSSadaf Ebrahimi 290*22dc650dSSadaf Ebrahimi/^[0-9]+$/ 291*22dc650dSSadaf Ebrahimi 0 292*22dc650dSSadaf Ebrahimi 0: 0 293*22dc650dSSadaf Ebrahimi 1 294*22dc650dSSadaf Ebrahimi 0: 1 295*22dc650dSSadaf Ebrahimi 2 296*22dc650dSSadaf Ebrahimi 0: 2 297*22dc650dSSadaf Ebrahimi 3 298*22dc650dSSadaf Ebrahimi 0: 3 299*22dc650dSSadaf Ebrahimi 4 300*22dc650dSSadaf Ebrahimi 0: 4 301*22dc650dSSadaf Ebrahimi 5 302*22dc650dSSadaf Ebrahimi 0: 5 303*22dc650dSSadaf Ebrahimi 6 304*22dc650dSSadaf Ebrahimi 0: 6 305*22dc650dSSadaf Ebrahimi 7 306*22dc650dSSadaf Ebrahimi 0: 7 307*22dc650dSSadaf Ebrahimi 8 308*22dc650dSSadaf Ebrahimi 0: 8 309*22dc650dSSadaf Ebrahimi 9 310*22dc650dSSadaf Ebrahimi 0: 9 311*22dc650dSSadaf Ebrahimi 10 312*22dc650dSSadaf Ebrahimi 0: 10 313*22dc650dSSadaf Ebrahimi 100 314*22dc650dSSadaf Ebrahimi 0: 100 315*22dc650dSSadaf Ebrahimi\= Expect no match 316*22dc650dSSadaf Ebrahimi abc 317*22dc650dSSadaf EbrahimiNo match 318*22dc650dSSadaf Ebrahimi 319*22dc650dSSadaf Ebrahimi/^.*nter/ 320*22dc650dSSadaf Ebrahimi enter 321*22dc650dSSadaf Ebrahimi 0: enter 322*22dc650dSSadaf Ebrahimi inter 323*22dc650dSSadaf Ebrahimi 0: inter 324*22dc650dSSadaf Ebrahimi uponter 325*22dc650dSSadaf Ebrahimi 0: uponter 326*22dc650dSSadaf Ebrahimi 327*22dc650dSSadaf Ebrahimi/^xxx[0-9]+$/ 328*22dc650dSSadaf Ebrahimi xxx0 329*22dc650dSSadaf Ebrahimi 0: xxx0 330*22dc650dSSadaf Ebrahimi xxx1234 331*22dc650dSSadaf Ebrahimi 0: xxx1234 332*22dc650dSSadaf Ebrahimi\= Expect no match 333*22dc650dSSadaf Ebrahimi xxx 334*22dc650dSSadaf EbrahimiNo match 335*22dc650dSSadaf Ebrahimi 336*22dc650dSSadaf Ebrahimi/^.+[0-9][0-9][0-9]$/ 337*22dc650dSSadaf Ebrahimi x123 338*22dc650dSSadaf Ebrahimi 0: x123 339*22dc650dSSadaf Ebrahimi x1234 340*22dc650dSSadaf Ebrahimi 0: x1234 341*22dc650dSSadaf Ebrahimi xx123 342*22dc650dSSadaf Ebrahimi 0: xx123 343*22dc650dSSadaf Ebrahimi 123456 344*22dc650dSSadaf Ebrahimi 0: 123456 345*22dc650dSSadaf Ebrahimi\= Expect no match 346*22dc650dSSadaf Ebrahimi 123 347*22dc650dSSadaf EbrahimiNo match 348*22dc650dSSadaf Ebrahimi 349*22dc650dSSadaf Ebrahimi/^.+?[0-9][0-9][0-9]$/ 350*22dc650dSSadaf Ebrahimi x123 351*22dc650dSSadaf Ebrahimi 0: x123 352*22dc650dSSadaf Ebrahimi x1234 353*22dc650dSSadaf Ebrahimi 0: x1234 354*22dc650dSSadaf Ebrahimi xx123 355*22dc650dSSadaf Ebrahimi 0: xx123 356*22dc650dSSadaf Ebrahimi 123456 357*22dc650dSSadaf Ebrahimi 0: 123456 358*22dc650dSSadaf Ebrahimi\= Expect no match 359*22dc650dSSadaf Ebrahimi 123 360*22dc650dSSadaf EbrahimiNo match 361*22dc650dSSadaf Ebrahimi 362*22dc650dSSadaf Ebrahimi/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ 363*22dc650dSSadaf Ebrahimi abc!pqr=apquxz.ixr.zzz.ac.uk 364*22dc650dSSadaf Ebrahimi 0: abc!pqr=apquxz.ixr.zzz.ac.uk 365*22dc650dSSadaf Ebrahimi 1: abc 366*22dc650dSSadaf Ebrahimi 2: pqr 367*22dc650dSSadaf Ebrahimi\= Expect no match 368*22dc650dSSadaf Ebrahimi !pqr=apquxz.ixr.zzz.ac.uk 369*22dc650dSSadaf EbrahimiNo match 370*22dc650dSSadaf Ebrahimi abc!=apquxz.ixr.zzz.ac.uk 371*22dc650dSSadaf EbrahimiNo match 372*22dc650dSSadaf Ebrahimi abc!pqr=apquxz:ixr.zzz.ac.uk 373*22dc650dSSadaf EbrahimiNo match 374*22dc650dSSadaf Ebrahimi abc!pqr=apquxz.ixr.zzz.ac.ukk 375*22dc650dSSadaf EbrahimiNo match 376*22dc650dSSadaf Ebrahimi 377*22dc650dSSadaf Ebrahimi/:/ 378*22dc650dSSadaf Ebrahimi Well, we need a colon: somewhere 379*22dc650dSSadaf Ebrahimi 0: : 380*22dc650dSSadaf Ebrahimi\= Expect no match 381*22dc650dSSadaf Ebrahimi Fail without a colon 382*22dc650dSSadaf EbrahimiNo match 383*22dc650dSSadaf Ebrahimi 384*22dc650dSSadaf Ebrahimi/([\da-f:]+)$/i 385*22dc650dSSadaf Ebrahimi 0abc 386*22dc650dSSadaf Ebrahimi 0: 0abc 387*22dc650dSSadaf Ebrahimi 1: 0abc 388*22dc650dSSadaf Ebrahimi abc 389*22dc650dSSadaf Ebrahimi 0: abc 390*22dc650dSSadaf Ebrahimi 1: abc 391*22dc650dSSadaf Ebrahimi fed 392*22dc650dSSadaf Ebrahimi 0: fed 393*22dc650dSSadaf Ebrahimi 1: fed 394*22dc650dSSadaf Ebrahimi E 395*22dc650dSSadaf Ebrahimi 0: E 396*22dc650dSSadaf Ebrahimi 1: E 397*22dc650dSSadaf Ebrahimi :: 398*22dc650dSSadaf Ebrahimi 0: :: 399*22dc650dSSadaf Ebrahimi 1: :: 400*22dc650dSSadaf Ebrahimi 5f03:12C0::932e 401*22dc650dSSadaf Ebrahimi 0: 5f03:12C0::932e 402*22dc650dSSadaf Ebrahimi 1: 5f03:12C0::932e 403*22dc650dSSadaf Ebrahimi fed def 404*22dc650dSSadaf Ebrahimi 0: def 405*22dc650dSSadaf Ebrahimi 1: def 406*22dc650dSSadaf Ebrahimi Any old stuff 407*22dc650dSSadaf Ebrahimi 0: ff 408*22dc650dSSadaf Ebrahimi 1: ff 409*22dc650dSSadaf Ebrahimi\= Expect no match 410*22dc650dSSadaf Ebrahimi 0zzz 411*22dc650dSSadaf EbrahimiNo match 412*22dc650dSSadaf Ebrahimi gzzz 413*22dc650dSSadaf EbrahimiNo match 414*22dc650dSSadaf Ebrahimi fed\x20 415*22dc650dSSadaf EbrahimiNo match 416*22dc650dSSadaf Ebrahimi Any old rubbish 417*22dc650dSSadaf EbrahimiNo match 418*22dc650dSSadaf Ebrahimi 419*22dc650dSSadaf Ebrahimi/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ 420*22dc650dSSadaf Ebrahimi .1.2.3 421*22dc650dSSadaf Ebrahimi 0: .1.2.3 422*22dc650dSSadaf Ebrahimi 1: 1 423*22dc650dSSadaf Ebrahimi 2: 2 424*22dc650dSSadaf Ebrahimi 3: 3 425*22dc650dSSadaf Ebrahimi A.12.123.0 426*22dc650dSSadaf Ebrahimi 0: A.12.123.0 427*22dc650dSSadaf Ebrahimi 1: 12 428*22dc650dSSadaf Ebrahimi 2: 123 429*22dc650dSSadaf Ebrahimi 3: 0 430*22dc650dSSadaf Ebrahimi\= Expect no match 431*22dc650dSSadaf Ebrahimi .1.2.3333 432*22dc650dSSadaf EbrahimiNo match 433*22dc650dSSadaf Ebrahimi 1.2.3 434*22dc650dSSadaf EbrahimiNo match 435*22dc650dSSadaf Ebrahimi 1234.2.3 436*22dc650dSSadaf EbrahimiNo match 437*22dc650dSSadaf Ebrahimi 438*22dc650dSSadaf Ebrahimi/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 439*22dc650dSSadaf Ebrahimi 1 IN SOA non-sp1 non-sp2( 440*22dc650dSSadaf Ebrahimi 0: 1 IN SOA non-sp1 non-sp2( 441*22dc650dSSadaf Ebrahimi 1: 1 442*22dc650dSSadaf Ebrahimi 2: non-sp1 443*22dc650dSSadaf Ebrahimi 3: non-sp2 444*22dc650dSSadaf Ebrahimi 1 IN SOA non-sp1 non-sp2 ( 445*22dc650dSSadaf Ebrahimi 0: 1 IN SOA non-sp1 non-sp2 ( 446*22dc650dSSadaf Ebrahimi 1: 1 447*22dc650dSSadaf Ebrahimi 2: non-sp1 448*22dc650dSSadaf Ebrahimi 3: non-sp2 449*22dc650dSSadaf Ebrahimi\= Expect no match 450*22dc650dSSadaf Ebrahimi 1IN SOA non-sp1 non-sp2( 451*22dc650dSSadaf EbrahimiNo match 452*22dc650dSSadaf Ebrahimi 453*22dc650dSSadaf Ebrahimi/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ 454*22dc650dSSadaf Ebrahimi a. 455*22dc650dSSadaf Ebrahimi 0: a. 456*22dc650dSSadaf Ebrahimi Z. 457*22dc650dSSadaf Ebrahimi 0: Z. 458*22dc650dSSadaf Ebrahimi 2. 459*22dc650dSSadaf Ebrahimi 0: 2. 460*22dc650dSSadaf Ebrahimi ab-c.pq-r. 461*22dc650dSSadaf Ebrahimi 0: ab-c.pq-r. 462*22dc650dSSadaf Ebrahimi 1: .pq-r 463*22dc650dSSadaf Ebrahimi sxk.zzz.ac.uk. 464*22dc650dSSadaf Ebrahimi 0: sxk.zzz.ac.uk. 465*22dc650dSSadaf Ebrahimi 1: .uk 466*22dc650dSSadaf Ebrahimi x-.y-. 467*22dc650dSSadaf Ebrahimi 0: x-.y-. 468*22dc650dSSadaf Ebrahimi 1: .y- 469*22dc650dSSadaf Ebrahimi\= Expect no match 470*22dc650dSSadaf Ebrahimi -abc.peq. 471*22dc650dSSadaf EbrahimiNo match 472*22dc650dSSadaf Ebrahimi 473*22dc650dSSadaf Ebrahimi/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ 474*22dc650dSSadaf Ebrahimi *.a 475*22dc650dSSadaf Ebrahimi 0: *.a 476*22dc650dSSadaf Ebrahimi *.b0-a 477*22dc650dSSadaf Ebrahimi 0: *.b0-a 478*22dc650dSSadaf Ebrahimi 1: 0-a 479*22dc650dSSadaf Ebrahimi *.c3-b.c 480*22dc650dSSadaf Ebrahimi 0: *.c3-b.c 481*22dc650dSSadaf Ebrahimi 1: 3-b 482*22dc650dSSadaf Ebrahimi 2: .c 483*22dc650dSSadaf Ebrahimi *.c-a.b-c 484*22dc650dSSadaf Ebrahimi 0: *.c-a.b-c 485*22dc650dSSadaf Ebrahimi 1: -a 486*22dc650dSSadaf Ebrahimi 2: .b-c 487*22dc650dSSadaf Ebrahimi 3: -c 488*22dc650dSSadaf Ebrahimi\= Expect no match 489*22dc650dSSadaf Ebrahimi *.0 490*22dc650dSSadaf EbrahimiNo match 491*22dc650dSSadaf Ebrahimi *.a- 492*22dc650dSSadaf EbrahimiNo match 493*22dc650dSSadaf Ebrahimi *.a-b.c- 494*22dc650dSSadaf EbrahimiNo match 495*22dc650dSSadaf Ebrahimi *.c-a.0-c 496*22dc650dSSadaf EbrahimiNo match 497*22dc650dSSadaf Ebrahimi 498*22dc650dSSadaf Ebrahimi/^(?=ab(de))(abd)(e)/ 499*22dc650dSSadaf Ebrahimi abde 500*22dc650dSSadaf Ebrahimi 0: abde 501*22dc650dSSadaf Ebrahimi 1: de 502*22dc650dSSadaf Ebrahimi 2: abd 503*22dc650dSSadaf Ebrahimi 3: e 504*22dc650dSSadaf Ebrahimi 505*22dc650dSSadaf Ebrahimi/^(?!(ab)de|x)(abd)(f)/ 506*22dc650dSSadaf Ebrahimi abdf 507*22dc650dSSadaf Ebrahimi 0: abdf 508*22dc650dSSadaf Ebrahimi 1: <unset> 509*22dc650dSSadaf Ebrahimi 2: abd 510*22dc650dSSadaf Ebrahimi 3: f 511*22dc650dSSadaf Ebrahimi 512*22dc650dSSadaf Ebrahimi/^(?=(ab(cd)))(ab)/ 513*22dc650dSSadaf Ebrahimi abcd 514*22dc650dSSadaf Ebrahimi 0: ab 515*22dc650dSSadaf Ebrahimi 1: abcd 516*22dc650dSSadaf Ebrahimi 2: cd 517*22dc650dSSadaf Ebrahimi 3: ab 518*22dc650dSSadaf Ebrahimi 519*22dc650dSSadaf Ebrahimi/^[\da-f](\.[\da-f])*$/i 520*22dc650dSSadaf Ebrahimi a.b.c.d 521*22dc650dSSadaf Ebrahimi 0: a.b.c.d 522*22dc650dSSadaf Ebrahimi 1: .d 523*22dc650dSSadaf Ebrahimi A.B.C.D 524*22dc650dSSadaf Ebrahimi 0: A.B.C.D 525*22dc650dSSadaf Ebrahimi 1: .D 526*22dc650dSSadaf Ebrahimi a.b.c.1.2.3.C 527*22dc650dSSadaf Ebrahimi 0: a.b.c.1.2.3.C 528*22dc650dSSadaf Ebrahimi 1: .C 529*22dc650dSSadaf Ebrahimi 530*22dc650dSSadaf Ebrahimi/^\".*\"\s*(;.*)?$/ 531*22dc650dSSadaf Ebrahimi \"1234\" 532*22dc650dSSadaf Ebrahimi 0: "1234" 533*22dc650dSSadaf Ebrahimi \"abcd\" ; 534*22dc650dSSadaf Ebrahimi 0: "abcd" ; 535*22dc650dSSadaf Ebrahimi 1: ; 536*22dc650dSSadaf Ebrahimi \"\" ; rhubarb 537*22dc650dSSadaf Ebrahimi 0: "" ; rhubarb 538*22dc650dSSadaf Ebrahimi 1: ; rhubarb 539*22dc650dSSadaf Ebrahimi\= Expect no match 540*22dc650dSSadaf Ebrahimi \"1234\" : things 541*22dc650dSSadaf EbrahimiNo match 542*22dc650dSSadaf Ebrahimi 543*22dc650dSSadaf Ebrahimi/^$/ 544*22dc650dSSadaf Ebrahimi \ 545*22dc650dSSadaf Ebrahimi 0: 546*22dc650dSSadaf Ebrahimi\= Expect no match 547*22dc650dSSadaf Ebrahimi A non-empty line 548*22dc650dSSadaf EbrahimiNo match 549*22dc650dSSadaf Ebrahimi 550*22dc650dSSadaf Ebrahimi/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x 551*22dc650dSSadaf Ebrahimi ab c 552*22dc650dSSadaf Ebrahimi 0: ab c 553*22dc650dSSadaf Ebrahimi\= Expect no match 554*22dc650dSSadaf Ebrahimi abc 555*22dc650dSSadaf EbrahimiNo match 556*22dc650dSSadaf Ebrahimi ab cde 557*22dc650dSSadaf EbrahimiNo match 558*22dc650dSSadaf Ebrahimi 559*22dc650dSSadaf Ebrahimi/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ 560*22dc650dSSadaf Ebrahimi ab c 561*22dc650dSSadaf Ebrahimi 0: ab c 562*22dc650dSSadaf Ebrahimi\= Expect no match 563*22dc650dSSadaf Ebrahimi abc 564*22dc650dSSadaf EbrahimiNo match 565*22dc650dSSadaf Ebrahimi ab cde 566*22dc650dSSadaf EbrahimiNo match 567*22dc650dSSadaf Ebrahimi 568*22dc650dSSadaf Ebrahimi/^ a\ b[c ]d $/x 569*22dc650dSSadaf Ebrahimi a bcd 570*22dc650dSSadaf Ebrahimi 0: a bcd 571*22dc650dSSadaf Ebrahimi a b d 572*22dc650dSSadaf Ebrahimi 0: a b d 573*22dc650dSSadaf Ebrahimi\= Expect no match 574*22dc650dSSadaf Ebrahimi abcd 575*22dc650dSSadaf EbrahimiNo match 576*22dc650dSSadaf Ebrahimi ab d 577*22dc650dSSadaf EbrahimiNo match 578*22dc650dSSadaf Ebrahimi 579*22dc650dSSadaf Ebrahimi/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ 580*22dc650dSSadaf Ebrahimi abcdefhijklm 581*22dc650dSSadaf Ebrahimi 0: abcdefhijklm 582*22dc650dSSadaf Ebrahimi 1: abc 583*22dc650dSSadaf Ebrahimi 2: bc 584*22dc650dSSadaf Ebrahimi 3: c 585*22dc650dSSadaf Ebrahimi 4: def 586*22dc650dSSadaf Ebrahimi 5: ef 587*22dc650dSSadaf Ebrahimi 6: f 588*22dc650dSSadaf Ebrahimi 7: hij 589*22dc650dSSadaf Ebrahimi 8: ij 590*22dc650dSSadaf Ebrahimi 9: j 591*22dc650dSSadaf Ebrahimi10: klm 592*22dc650dSSadaf Ebrahimi11: lm 593*22dc650dSSadaf Ebrahimi12: m 594*22dc650dSSadaf Ebrahimi 595*22dc650dSSadaf Ebrahimi/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ 596*22dc650dSSadaf Ebrahimi abcdefhijklm 597*22dc650dSSadaf Ebrahimi 0: abcdefhijklm 598*22dc650dSSadaf Ebrahimi 1: bc 599*22dc650dSSadaf Ebrahimi 2: c 600*22dc650dSSadaf Ebrahimi 3: ef 601*22dc650dSSadaf Ebrahimi 4: f 602*22dc650dSSadaf Ebrahimi 5: ij 603*22dc650dSSadaf Ebrahimi 6: j 604*22dc650dSSadaf Ebrahimi 7: lm 605*22dc650dSSadaf Ebrahimi 8: m 606*22dc650dSSadaf Ebrahimi 607*22dc650dSSadaf Ebrahimi/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ 608*22dc650dSSadaf Ebrahimi a+ Z0+\x08\n\x1d\x12 609*22dc650dSSadaf Ebrahimi 0: a+ Z0+\x08\x0a\x1d\x12 610*22dc650dSSadaf Ebrahimi 611*22dc650dSSadaf Ebrahimi/^[.^$|()*+?{,}]+/ 612*22dc650dSSadaf Ebrahimi .^\$(*+)|{?,?} 613*22dc650dSSadaf Ebrahimi 0: .^$(*+)|{?,?} 614*22dc650dSSadaf Ebrahimi 615*22dc650dSSadaf Ebrahimi/^a*\w/ 616*22dc650dSSadaf Ebrahimi z 617*22dc650dSSadaf Ebrahimi 0: z 618*22dc650dSSadaf Ebrahimi az 619*22dc650dSSadaf Ebrahimi 0: az 620*22dc650dSSadaf Ebrahimi aaaz 621*22dc650dSSadaf Ebrahimi 0: aaaz 622*22dc650dSSadaf Ebrahimi a 623*22dc650dSSadaf Ebrahimi 0: a 624*22dc650dSSadaf Ebrahimi aa 625*22dc650dSSadaf Ebrahimi 0: aa 626*22dc650dSSadaf Ebrahimi aaaa 627*22dc650dSSadaf Ebrahimi 0: aaaa 628*22dc650dSSadaf Ebrahimi a+ 629*22dc650dSSadaf Ebrahimi 0: a 630*22dc650dSSadaf Ebrahimi aa+ 631*22dc650dSSadaf Ebrahimi 0: aa 632*22dc650dSSadaf Ebrahimi 633*22dc650dSSadaf Ebrahimi/^a*?\w/ 634*22dc650dSSadaf Ebrahimi z 635*22dc650dSSadaf Ebrahimi 0: z 636*22dc650dSSadaf Ebrahimi az 637*22dc650dSSadaf Ebrahimi 0: a 638*22dc650dSSadaf Ebrahimi aaaz 639*22dc650dSSadaf Ebrahimi 0: a 640*22dc650dSSadaf Ebrahimi a 641*22dc650dSSadaf Ebrahimi 0: a 642*22dc650dSSadaf Ebrahimi aa 643*22dc650dSSadaf Ebrahimi 0: a 644*22dc650dSSadaf Ebrahimi aaaa 645*22dc650dSSadaf Ebrahimi 0: a 646*22dc650dSSadaf Ebrahimi a+ 647*22dc650dSSadaf Ebrahimi 0: a 648*22dc650dSSadaf Ebrahimi aa+ 649*22dc650dSSadaf Ebrahimi 0: a 650*22dc650dSSadaf Ebrahimi 651*22dc650dSSadaf Ebrahimi/^a+\w/ 652*22dc650dSSadaf Ebrahimi az 653*22dc650dSSadaf Ebrahimi 0: az 654*22dc650dSSadaf Ebrahimi aaaz 655*22dc650dSSadaf Ebrahimi 0: aaaz 656*22dc650dSSadaf Ebrahimi aa 657*22dc650dSSadaf Ebrahimi 0: aa 658*22dc650dSSadaf Ebrahimi aaaa 659*22dc650dSSadaf Ebrahimi 0: aaaa 660*22dc650dSSadaf Ebrahimi aa+ 661*22dc650dSSadaf Ebrahimi 0: aa 662*22dc650dSSadaf Ebrahimi 663*22dc650dSSadaf Ebrahimi/^a+?\w/ 664*22dc650dSSadaf Ebrahimi az 665*22dc650dSSadaf Ebrahimi 0: az 666*22dc650dSSadaf Ebrahimi aaaz 667*22dc650dSSadaf Ebrahimi 0: aa 668*22dc650dSSadaf Ebrahimi aa 669*22dc650dSSadaf Ebrahimi 0: aa 670*22dc650dSSadaf Ebrahimi aaaa 671*22dc650dSSadaf Ebrahimi 0: aa 672*22dc650dSSadaf Ebrahimi aa+ 673*22dc650dSSadaf Ebrahimi 0: aa 674*22dc650dSSadaf Ebrahimi 675*22dc650dSSadaf Ebrahimi/^\d{8}\w{2,}/ 676*22dc650dSSadaf Ebrahimi 1234567890 677*22dc650dSSadaf Ebrahimi 0: 1234567890 678*22dc650dSSadaf Ebrahimi 12345678ab 679*22dc650dSSadaf Ebrahimi 0: 12345678ab 680*22dc650dSSadaf Ebrahimi 12345678__ 681*22dc650dSSadaf Ebrahimi 0: 12345678__ 682*22dc650dSSadaf Ebrahimi\= Expect no match 683*22dc650dSSadaf Ebrahimi 1234567 684*22dc650dSSadaf EbrahimiNo match 685*22dc650dSSadaf Ebrahimi 686*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}$/ 687*22dc650dSSadaf Ebrahimi uoie 688*22dc650dSSadaf Ebrahimi 0: uoie 689*22dc650dSSadaf Ebrahimi 1234 690*22dc650dSSadaf Ebrahimi 0: 1234 691*22dc650dSSadaf Ebrahimi 12345 692*22dc650dSSadaf Ebrahimi 0: 12345 693*22dc650dSSadaf Ebrahimi aaaaa 694*22dc650dSSadaf Ebrahimi 0: aaaaa 695*22dc650dSSadaf Ebrahimi\= Expect no match 696*22dc650dSSadaf Ebrahimi 123456 697*22dc650dSSadaf EbrahimiNo match 698*22dc650dSSadaf Ebrahimi 699*22dc650dSSadaf Ebrahimi/^[aeiou\d]{4,5}?/ 700*22dc650dSSadaf Ebrahimi uoie 701*22dc650dSSadaf Ebrahimi 0: uoie 702*22dc650dSSadaf Ebrahimi 1234 703*22dc650dSSadaf Ebrahimi 0: 1234 704*22dc650dSSadaf Ebrahimi 12345 705*22dc650dSSadaf Ebrahimi 0: 1234 706*22dc650dSSadaf Ebrahimi aaaaa 707*22dc650dSSadaf Ebrahimi 0: aaaa 708*22dc650dSSadaf Ebrahimi 123456 709*22dc650dSSadaf Ebrahimi 0: 1234 710*22dc650dSSadaf Ebrahimi 711*22dc650dSSadaf Ebrahimi/\A(abc|def)=(\1){2,3}\Z/ 712*22dc650dSSadaf Ebrahimi abc=abcabc 713*22dc650dSSadaf Ebrahimi 0: abc=abcabc 714*22dc650dSSadaf Ebrahimi 1: abc 715*22dc650dSSadaf Ebrahimi 2: abc 716*22dc650dSSadaf Ebrahimi def=defdefdef 717*22dc650dSSadaf Ebrahimi 0: def=defdefdef 718*22dc650dSSadaf Ebrahimi 1: def 719*22dc650dSSadaf Ebrahimi 2: def 720*22dc650dSSadaf Ebrahimi\= Expect no match 721*22dc650dSSadaf Ebrahimi abc=defdef 722*22dc650dSSadaf EbrahimiNo match 723*22dc650dSSadaf Ebrahimi 724*22dc650dSSadaf Ebrahimi/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ 725*22dc650dSSadaf Ebrahimi abcdefghijkcda2 726*22dc650dSSadaf Ebrahimi 0: abcdefghijkcda2 727*22dc650dSSadaf Ebrahimi 1: a 728*22dc650dSSadaf Ebrahimi 2: b 729*22dc650dSSadaf Ebrahimi 3: c 730*22dc650dSSadaf Ebrahimi 4: d 731*22dc650dSSadaf Ebrahimi 5: e 732*22dc650dSSadaf Ebrahimi 6: f 733*22dc650dSSadaf Ebrahimi 7: g 734*22dc650dSSadaf Ebrahimi 8: h 735*22dc650dSSadaf Ebrahimi 9: i 736*22dc650dSSadaf Ebrahimi10: j 737*22dc650dSSadaf Ebrahimi11: k 738*22dc650dSSadaf Ebrahimi12: cd 739*22dc650dSSadaf Ebrahimi abcdefghijkkkkcda2 740*22dc650dSSadaf Ebrahimi 0: abcdefghijkkkkcda2 741*22dc650dSSadaf Ebrahimi 1: a 742*22dc650dSSadaf Ebrahimi 2: b 743*22dc650dSSadaf Ebrahimi 3: c 744*22dc650dSSadaf Ebrahimi 4: d 745*22dc650dSSadaf Ebrahimi 5: e 746*22dc650dSSadaf Ebrahimi 6: f 747*22dc650dSSadaf Ebrahimi 7: g 748*22dc650dSSadaf Ebrahimi 8: h 749*22dc650dSSadaf Ebrahimi 9: i 750*22dc650dSSadaf Ebrahimi10: j 751*22dc650dSSadaf Ebrahimi11: k 752*22dc650dSSadaf Ebrahimi12: cd 753*22dc650dSSadaf Ebrahimi 754*22dc650dSSadaf Ebrahimi/(cat(a(ract|tonic)|erpillar)) \1()2(3)/ 755*22dc650dSSadaf Ebrahimi cataract cataract23 756*22dc650dSSadaf Ebrahimi 0: cataract cataract23 757*22dc650dSSadaf Ebrahimi 1: cataract 758*22dc650dSSadaf Ebrahimi 2: aract 759*22dc650dSSadaf Ebrahimi 3: ract 760*22dc650dSSadaf Ebrahimi 4: 761*22dc650dSSadaf Ebrahimi 5: 3 762*22dc650dSSadaf Ebrahimi catatonic catatonic23 763*22dc650dSSadaf Ebrahimi 0: catatonic catatonic23 764*22dc650dSSadaf Ebrahimi 1: catatonic 765*22dc650dSSadaf Ebrahimi 2: atonic 766*22dc650dSSadaf Ebrahimi 3: tonic 767*22dc650dSSadaf Ebrahimi 4: 768*22dc650dSSadaf Ebrahimi 5: 3 769*22dc650dSSadaf Ebrahimi caterpillar caterpillar23 770*22dc650dSSadaf Ebrahimi 0: caterpillar caterpillar23 771*22dc650dSSadaf Ebrahimi 1: caterpillar 772*22dc650dSSadaf Ebrahimi 2: erpillar 773*22dc650dSSadaf Ebrahimi 3: <unset> 774*22dc650dSSadaf Ebrahimi 4: 775*22dc650dSSadaf Ebrahimi 5: 3 776*22dc650dSSadaf Ebrahimi 777*22dc650dSSadaf Ebrahimi 778*22dc650dSSadaf Ebrahimi/^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]/ 779*22dc650dSSadaf Ebrahimi From abcd Mon Sep 01 12:33:02 1997 780*22dc650dSSadaf Ebrahimi 0: From abcd Mon Sep 01 12:33 781*22dc650dSSadaf Ebrahimi 1: abcd 782*22dc650dSSadaf Ebrahimi 783*22dc650dSSadaf Ebrahimi/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ 784*22dc650dSSadaf Ebrahimi From abcd Mon Sep 01 12:33:02 1997 785*22dc650dSSadaf Ebrahimi 0: From abcd Mon Sep 01 12:33 786*22dc650dSSadaf Ebrahimi 1: Sep 787*22dc650dSSadaf Ebrahimi From abcd Mon Sep 1 12:33:02 1997 788*22dc650dSSadaf Ebrahimi 0: From abcd Mon Sep 1 12:33 789*22dc650dSSadaf Ebrahimi 1: Sep 790*22dc650dSSadaf Ebrahimi\= Expect no match 791*22dc650dSSadaf Ebrahimi From abcd Sep 01 12:33:02 1997 792*22dc650dSSadaf EbrahimiNo match 793*22dc650dSSadaf Ebrahimi 794*22dc650dSSadaf Ebrahimi/^12.34/s 795*22dc650dSSadaf Ebrahimi 12\n34 796*22dc650dSSadaf Ebrahimi 0: 12\x0a34 797*22dc650dSSadaf Ebrahimi 12\r34 798*22dc650dSSadaf Ebrahimi 0: 12\x0d34 799*22dc650dSSadaf Ebrahimi 800*22dc650dSSadaf Ebrahimi/\w+(?=\t)/ 801*22dc650dSSadaf Ebrahimi the quick brown\t fox 802*22dc650dSSadaf Ebrahimi 0: brown 803*22dc650dSSadaf Ebrahimi 804*22dc650dSSadaf Ebrahimi/foo(?!bar)(.*)/ 805*22dc650dSSadaf Ebrahimi foobar is foolish see? 806*22dc650dSSadaf Ebrahimi 0: foolish see? 807*22dc650dSSadaf Ebrahimi 1: lish see? 808*22dc650dSSadaf Ebrahimi 809*22dc650dSSadaf Ebrahimi/(?:(?!foo)...|^.{0,2})bar(.*)/ 810*22dc650dSSadaf Ebrahimi foobar crowbar etc 811*22dc650dSSadaf Ebrahimi 0: rowbar etc 812*22dc650dSSadaf Ebrahimi 1: etc 813*22dc650dSSadaf Ebrahimi barrel 814*22dc650dSSadaf Ebrahimi 0: barrel 815*22dc650dSSadaf Ebrahimi 1: rel 816*22dc650dSSadaf Ebrahimi 2barrel 817*22dc650dSSadaf Ebrahimi 0: 2barrel 818*22dc650dSSadaf Ebrahimi 1: rel 819*22dc650dSSadaf Ebrahimi A barrel 820*22dc650dSSadaf Ebrahimi 0: A barrel 821*22dc650dSSadaf Ebrahimi 1: rel 822*22dc650dSSadaf Ebrahimi 823*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/ 824*22dc650dSSadaf Ebrahimi abc456 825*22dc650dSSadaf Ebrahimi 0: abc 826*22dc650dSSadaf Ebrahimi 1: abc 827*22dc650dSSadaf Ebrahimi\= Expect no match 828*22dc650dSSadaf Ebrahimi abc123 829*22dc650dSSadaf EbrahimiNo match 830*22dc650dSSadaf Ebrahimi 831*22dc650dSSadaf Ebrahimi/^1234(?# test newlines 832*22dc650dSSadaf Ebrahimi inside)/ 833*22dc650dSSadaf Ebrahimi 1234 834*22dc650dSSadaf Ebrahimi 0: 1234 835*22dc650dSSadaf Ebrahimi 836*22dc650dSSadaf Ebrahimi/^1234 #comment in extended re 837*22dc650dSSadaf Ebrahimi /x 838*22dc650dSSadaf Ebrahimi 1234 839*22dc650dSSadaf Ebrahimi 0: 1234 840*22dc650dSSadaf Ebrahimi 841*22dc650dSSadaf Ebrahimi/#rhubarb 842*22dc650dSSadaf Ebrahimi abcd/x 843*22dc650dSSadaf Ebrahimi abcd 844*22dc650dSSadaf Ebrahimi 0: abcd 845*22dc650dSSadaf Ebrahimi 846*22dc650dSSadaf Ebrahimi/^abcd#rhubarb/x 847*22dc650dSSadaf Ebrahimi abcd 848*22dc650dSSadaf Ebrahimi 0: abcd 849*22dc650dSSadaf Ebrahimi 850*22dc650dSSadaf Ebrahimi/^(a)\1{2,3}(.)/ 851*22dc650dSSadaf Ebrahimi aaab 852*22dc650dSSadaf Ebrahimi 0: aaab 853*22dc650dSSadaf Ebrahimi 1: a 854*22dc650dSSadaf Ebrahimi 2: b 855*22dc650dSSadaf Ebrahimi aaaab 856*22dc650dSSadaf Ebrahimi 0: aaaab 857*22dc650dSSadaf Ebrahimi 1: a 858*22dc650dSSadaf Ebrahimi 2: b 859*22dc650dSSadaf Ebrahimi aaaaab 860*22dc650dSSadaf Ebrahimi 0: aaaaa 861*22dc650dSSadaf Ebrahimi 1: a 862*22dc650dSSadaf Ebrahimi 2: a 863*22dc650dSSadaf Ebrahimi aaaaaab 864*22dc650dSSadaf Ebrahimi 0: aaaaa 865*22dc650dSSadaf Ebrahimi 1: a 866*22dc650dSSadaf Ebrahimi 2: a 867*22dc650dSSadaf Ebrahimi 868*22dc650dSSadaf Ebrahimi/(?!^)abc/ 869*22dc650dSSadaf Ebrahimi the abc 870*22dc650dSSadaf Ebrahimi 0: abc 871*22dc650dSSadaf Ebrahimi\= Expect no match 872*22dc650dSSadaf Ebrahimi abc 873*22dc650dSSadaf EbrahimiNo match 874*22dc650dSSadaf Ebrahimi 875*22dc650dSSadaf Ebrahimi/(?=^)abc/ 876*22dc650dSSadaf Ebrahimi abc 877*22dc650dSSadaf Ebrahimi 0: abc 878*22dc650dSSadaf Ebrahimi\= Expect no match 879*22dc650dSSadaf Ebrahimi the abc 880*22dc650dSSadaf EbrahimiNo match 881*22dc650dSSadaf Ebrahimi 882*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*|b)/ 883*22dc650dSSadaf Ebrahimi aabbbbb 884*22dc650dSSadaf Ebrahimi 0: aabb 885*22dc650dSSadaf Ebrahimi 1: b 886*22dc650dSSadaf Ebrahimi 887*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*|b)/ 888*22dc650dSSadaf Ebrahimi aabbbbb 889*22dc650dSSadaf Ebrahimi 0: aabbbbb 890*22dc650dSSadaf Ebrahimi 1: abbbbb 891*22dc650dSSadaf Ebrahimi 892*22dc650dSSadaf Ebrahimi/^[ab]{1,3}?(ab*?|b)/ 893*22dc650dSSadaf Ebrahimi aabbbbb 894*22dc650dSSadaf Ebrahimi 0: aa 895*22dc650dSSadaf Ebrahimi 1: a 896*22dc650dSSadaf Ebrahimi 897*22dc650dSSadaf Ebrahimi/^[ab]{1,3}(ab*?|b)/ 898*22dc650dSSadaf Ebrahimi aabbbbb 899*22dc650dSSadaf Ebrahimi 0: aabb 900*22dc650dSSadaf Ebrahimi 1: b 901*22dc650dSSadaf Ebrahimi 902*22dc650dSSadaf Ebrahimi/ (?: [\040\t] | \( 903*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 904*22dc650dSSadaf Ebrahimi\) )* # optional leading comment 905*22dc650dSSadaf Ebrahimi(?: (?: 906*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 907*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 908*22dc650dSSadaf Ebrahimi| 909*22dc650dSSadaf Ebrahimi" (?: # opening quote... 910*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 911*22dc650dSSadaf Ebrahimi| # or 912*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 913*22dc650dSSadaf Ebrahimi)* " # closing quote 914*22dc650dSSadaf Ebrahimi) # initial word 915*22dc650dSSadaf Ebrahimi(?: (?: [\040\t] | \( 916*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 917*22dc650dSSadaf Ebrahimi\) )* \. (?: [\040\t] | \( 918*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 919*22dc650dSSadaf Ebrahimi\) )* (?: 920*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 921*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 922*22dc650dSSadaf Ebrahimi| 923*22dc650dSSadaf Ebrahimi" (?: # opening quote... 924*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 925*22dc650dSSadaf Ebrahimi| # or 926*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 927*22dc650dSSadaf Ebrahimi)* " # closing quote 928*22dc650dSSadaf Ebrahimi) )* # further okay, if led by a period 929*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 930*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 931*22dc650dSSadaf Ebrahimi\) )* @ (?: [\040\t] | \( 932*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 933*22dc650dSSadaf Ebrahimi\) )* (?: 934*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 935*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 936*22dc650dSSadaf Ebrahimi| \[ # [ 937*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 938*22dc650dSSadaf Ebrahimi\] # ] 939*22dc650dSSadaf Ebrahimi) # initial subdomain 940*22dc650dSSadaf Ebrahimi(?: # 941*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 942*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 943*22dc650dSSadaf Ebrahimi\) )* \. # if led by a period... 944*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 945*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 946*22dc650dSSadaf Ebrahimi\) )* (?: 947*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 948*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 949*22dc650dSSadaf Ebrahimi| \[ # [ 950*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 951*22dc650dSSadaf Ebrahimi\] # ] 952*22dc650dSSadaf Ebrahimi) # ...further okay 953*22dc650dSSadaf Ebrahimi)* 954*22dc650dSSadaf Ebrahimi# address 955*22dc650dSSadaf Ebrahimi| # or 956*22dc650dSSadaf Ebrahimi(?: 957*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 958*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 959*22dc650dSSadaf Ebrahimi| 960*22dc650dSSadaf Ebrahimi" (?: # opening quote... 961*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 962*22dc650dSSadaf Ebrahimi| # or 963*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 964*22dc650dSSadaf Ebrahimi)* " # closing quote 965*22dc650dSSadaf Ebrahimi) # one word, optionally followed by.... 966*22dc650dSSadaf Ebrahimi(?: 967*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... 968*22dc650dSSadaf Ebrahimi\( 969*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 970*22dc650dSSadaf Ebrahimi\) | # comments, or... 971*22dc650dSSadaf Ebrahimi 972*22dc650dSSadaf Ebrahimi" (?: # opening quote... 973*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 974*22dc650dSSadaf Ebrahimi| # or 975*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 976*22dc650dSSadaf Ebrahimi)* " # closing quote 977*22dc650dSSadaf Ebrahimi# quoted strings 978*22dc650dSSadaf Ebrahimi)* 979*22dc650dSSadaf Ebrahimi< (?: [\040\t] | \( 980*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 981*22dc650dSSadaf Ebrahimi\) )* # leading < 982*22dc650dSSadaf Ebrahimi(?: @ (?: [\040\t] | \( 983*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 984*22dc650dSSadaf Ebrahimi\) )* (?: 985*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 986*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 987*22dc650dSSadaf Ebrahimi| \[ # [ 988*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 989*22dc650dSSadaf Ebrahimi\] # ] 990*22dc650dSSadaf Ebrahimi) # initial subdomain 991*22dc650dSSadaf Ebrahimi(?: # 992*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 993*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 994*22dc650dSSadaf Ebrahimi\) )* \. # if led by a period... 995*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 996*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 997*22dc650dSSadaf Ebrahimi\) )* (?: 998*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 999*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1000*22dc650dSSadaf Ebrahimi| \[ # [ 1001*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1002*22dc650dSSadaf Ebrahimi\] # ] 1003*22dc650dSSadaf Ebrahimi) # ...further okay 1004*22dc650dSSadaf Ebrahimi)* 1005*22dc650dSSadaf Ebrahimi 1006*22dc650dSSadaf Ebrahimi(?: (?: [\040\t] | \( 1007*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1008*22dc650dSSadaf Ebrahimi\) )* , (?: [\040\t] | \( 1009*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1010*22dc650dSSadaf Ebrahimi\) )* @ (?: [\040\t] | \( 1011*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1012*22dc650dSSadaf Ebrahimi\) )* (?: 1013*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1014*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1015*22dc650dSSadaf Ebrahimi| \[ # [ 1016*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1017*22dc650dSSadaf Ebrahimi\] # ] 1018*22dc650dSSadaf Ebrahimi) # initial subdomain 1019*22dc650dSSadaf Ebrahimi(?: # 1020*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1021*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1022*22dc650dSSadaf Ebrahimi\) )* \. # if led by a period... 1023*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1024*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1025*22dc650dSSadaf Ebrahimi\) )* (?: 1026*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1027*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1028*22dc650dSSadaf Ebrahimi| \[ # [ 1029*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1030*22dc650dSSadaf Ebrahimi\] # ] 1031*22dc650dSSadaf Ebrahimi) # ...further okay 1032*22dc650dSSadaf Ebrahimi)* 1033*22dc650dSSadaf Ebrahimi)* # further okay, if led by comma 1034*22dc650dSSadaf Ebrahimi: # closing colon 1035*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1036*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1037*22dc650dSSadaf Ebrahimi\) )* )? # optional route 1038*22dc650dSSadaf Ebrahimi(?: 1039*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1040*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1041*22dc650dSSadaf Ebrahimi| 1042*22dc650dSSadaf Ebrahimi" (?: # opening quote... 1043*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1044*22dc650dSSadaf Ebrahimi| # or 1045*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 1046*22dc650dSSadaf Ebrahimi)* " # closing quote 1047*22dc650dSSadaf Ebrahimi) # initial word 1048*22dc650dSSadaf Ebrahimi(?: (?: [\040\t] | \( 1049*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1050*22dc650dSSadaf Ebrahimi\) )* \. (?: [\040\t] | \( 1051*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1052*22dc650dSSadaf Ebrahimi\) )* (?: 1053*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1054*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1055*22dc650dSSadaf Ebrahimi| 1056*22dc650dSSadaf Ebrahimi" (?: # opening quote... 1057*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] # Anything except backslash and quote 1058*22dc650dSSadaf Ebrahimi| # or 1059*22dc650dSSadaf Ebrahimi\\ [^\x80-\xff] # Escaped something (something != CR) 1060*22dc650dSSadaf Ebrahimi)* " # closing quote 1061*22dc650dSSadaf Ebrahimi) )* # further okay, if led by a period 1062*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1063*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1064*22dc650dSSadaf Ebrahimi\) )* @ (?: [\040\t] | \( 1065*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1066*22dc650dSSadaf Ebrahimi\) )* (?: 1067*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1068*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1069*22dc650dSSadaf Ebrahimi| \[ # [ 1070*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1071*22dc650dSSadaf Ebrahimi\] # ] 1072*22dc650dSSadaf Ebrahimi) # initial subdomain 1073*22dc650dSSadaf Ebrahimi(?: # 1074*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1075*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1076*22dc650dSSadaf Ebrahimi\) )* \. # if led by a period... 1077*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1078*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1079*22dc650dSSadaf Ebrahimi\) )* (?: 1080*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1081*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1082*22dc650dSSadaf Ebrahimi| \[ # [ 1083*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1084*22dc650dSSadaf Ebrahimi\] # ] 1085*22dc650dSSadaf Ebrahimi) # ...further okay 1086*22dc650dSSadaf Ebrahimi)* 1087*22dc650dSSadaf Ebrahimi# address spec 1088*22dc650dSSadaf Ebrahimi(?: [\040\t] | \( 1089*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1090*22dc650dSSadaf Ebrahimi\) )* > # trailing > 1091*22dc650dSSadaf Ebrahimi# name and address 1092*22dc650dSSadaf Ebrahimi) (?: [\040\t] | \( 1093*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1094*22dc650dSSadaf Ebrahimi\) )* # optional trailing comment 1095*22dc650dSSadaf Ebrahimi/x 1096*22dc650dSSadaf Ebrahimi Alan Other <user\@dom.ain> 1097*22dc650dSSadaf Ebrahimi 0: Alan Other <[email protected]> 1098*22dc650dSSadaf Ebrahimi <user\@dom.ain> 1099*22dc650dSSadaf Ebrahimi 0: [email protected] 1100*22dc650dSSadaf Ebrahimi user\@dom.ain 1101*22dc650dSSadaf Ebrahimi 0: [email protected] 1102*22dc650dSSadaf Ebrahimi \"A. Other\" <user.1234\@dom.ain> (a comment) 1103*22dc650dSSadaf Ebrahimi 0: "A. Other" <[email protected]> (a comment) 1104*22dc650dSSadaf Ebrahimi A. Other <user.1234\@dom.ain> (a comment) 1105*22dc650dSSadaf Ebrahimi 0: Other <[email protected]> (a comment) 1106*22dc650dSSadaf Ebrahimi \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 1107*22dc650dSSadaf Ebrahimi 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay 1108*22dc650dSSadaf Ebrahimi A missing angle <user\@some.where 1109*22dc650dSSadaf Ebrahimi 0: [email protected] 1110*22dc650dSSadaf Ebrahimi\= Expect no match 1111*22dc650dSSadaf Ebrahimi The quick brown fox 1112*22dc650dSSadaf EbrahimiNo match 1113*22dc650dSSadaf Ebrahimi 1114*22dc650dSSadaf Ebrahimi/[\040\t]* # Nab whitespace. 1115*22dc650dSSadaf Ebrahimi(?: 1116*22dc650dSSadaf Ebrahimi\( # ( 1117*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1118*22dc650dSSadaf Ebrahimi(?: # ( 1119*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1120*22dc650dSSadaf Ebrahimi\( # ( 1121*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1122*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1123*22dc650dSSadaf Ebrahimi\) # ) 1124*22dc650dSSadaf Ebrahimi) # special 1125*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1126*22dc650dSSadaf Ebrahimi)* # )* 1127*22dc650dSSadaf Ebrahimi\) # ) 1128*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1129*22dc650dSSadaf Ebrahimi# optional leading comment 1130*22dc650dSSadaf Ebrahimi(?: 1131*22dc650dSSadaf Ebrahimi(?: 1132*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1133*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1134*22dc650dSSadaf Ebrahimi# Atom 1135*22dc650dSSadaf Ebrahimi| # or 1136*22dc650dSSadaf Ebrahimi" # " 1137*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1138*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1139*22dc650dSSadaf Ebrahimi" # " 1140*22dc650dSSadaf Ebrahimi# Quoted string 1141*22dc650dSSadaf Ebrahimi) 1142*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1143*22dc650dSSadaf Ebrahimi(?: 1144*22dc650dSSadaf Ebrahimi\( # ( 1145*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1146*22dc650dSSadaf Ebrahimi(?: # ( 1147*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1148*22dc650dSSadaf Ebrahimi\( # ( 1149*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1150*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1151*22dc650dSSadaf Ebrahimi\) # ) 1152*22dc650dSSadaf Ebrahimi) # special 1153*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1154*22dc650dSSadaf Ebrahimi)* # )* 1155*22dc650dSSadaf Ebrahimi\) # ) 1156*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1157*22dc650dSSadaf Ebrahimi(?: 1158*22dc650dSSadaf Ebrahimi\. 1159*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1160*22dc650dSSadaf Ebrahimi(?: 1161*22dc650dSSadaf Ebrahimi\( # ( 1162*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1163*22dc650dSSadaf Ebrahimi(?: # ( 1164*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1165*22dc650dSSadaf Ebrahimi\( # ( 1166*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1167*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1168*22dc650dSSadaf Ebrahimi\) # ) 1169*22dc650dSSadaf Ebrahimi) # special 1170*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1171*22dc650dSSadaf Ebrahimi)* # )* 1172*22dc650dSSadaf Ebrahimi\) # ) 1173*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1174*22dc650dSSadaf Ebrahimi(?: 1175*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1176*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1177*22dc650dSSadaf Ebrahimi# Atom 1178*22dc650dSSadaf Ebrahimi| # or 1179*22dc650dSSadaf Ebrahimi" # " 1180*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1181*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1182*22dc650dSSadaf Ebrahimi" # " 1183*22dc650dSSadaf Ebrahimi# Quoted string 1184*22dc650dSSadaf Ebrahimi) 1185*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1186*22dc650dSSadaf Ebrahimi(?: 1187*22dc650dSSadaf Ebrahimi\( # ( 1188*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1189*22dc650dSSadaf Ebrahimi(?: # ( 1190*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1191*22dc650dSSadaf Ebrahimi\( # ( 1192*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1193*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1194*22dc650dSSadaf Ebrahimi\) # ) 1195*22dc650dSSadaf Ebrahimi) # special 1196*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1197*22dc650dSSadaf Ebrahimi)* # )* 1198*22dc650dSSadaf Ebrahimi\) # ) 1199*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1200*22dc650dSSadaf Ebrahimi# additional words 1201*22dc650dSSadaf Ebrahimi)* 1202*22dc650dSSadaf Ebrahimi@ 1203*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1204*22dc650dSSadaf Ebrahimi(?: 1205*22dc650dSSadaf Ebrahimi\( # ( 1206*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1207*22dc650dSSadaf Ebrahimi(?: # ( 1208*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1209*22dc650dSSadaf Ebrahimi\( # ( 1210*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1211*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1212*22dc650dSSadaf Ebrahimi\) # ) 1213*22dc650dSSadaf Ebrahimi) # special 1214*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1215*22dc650dSSadaf Ebrahimi)* # )* 1216*22dc650dSSadaf Ebrahimi\) # ) 1217*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1218*22dc650dSSadaf Ebrahimi(?: 1219*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1220*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1221*22dc650dSSadaf Ebrahimi| 1222*22dc650dSSadaf Ebrahimi\[ # [ 1223*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1224*22dc650dSSadaf Ebrahimi\] # ] 1225*22dc650dSSadaf Ebrahimi) 1226*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1227*22dc650dSSadaf Ebrahimi(?: 1228*22dc650dSSadaf Ebrahimi\( # ( 1229*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1230*22dc650dSSadaf Ebrahimi(?: # ( 1231*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1232*22dc650dSSadaf Ebrahimi\( # ( 1233*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1234*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1235*22dc650dSSadaf Ebrahimi\) # ) 1236*22dc650dSSadaf Ebrahimi) # special 1237*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1238*22dc650dSSadaf Ebrahimi)* # )* 1239*22dc650dSSadaf Ebrahimi\) # ) 1240*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1241*22dc650dSSadaf Ebrahimi# optional trailing comments 1242*22dc650dSSadaf Ebrahimi(?: 1243*22dc650dSSadaf Ebrahimi\. 1244*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1245*22dc650dSSadaf Ebrahimi(?: 1246*22dc650dSSadaf Ebrahimi\( # ( 1247*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1248*22dc650dSSadaf Ebrahimi(?: # ( 1249*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1250*22dc650dSSadaf Ebrahimi\( # ( 1251*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1252*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1253*22dc650dSSadaf Ebrahimi\) # ) 1254*22dc650dSSadaf Ebrahimi) # special 1255*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1256*22dc650dSSadaf Ebrahimi)* # )* 1257*22dc650dSSadaf Ebrahimi\) # ) 1258*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1259*22dc650dSSadaf Ebrahimi(?: 1260*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1261*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1262*22dc650dSSadaf Ebrahimi| 1263*22dc650dSSadaf Ebrahimi\[ # [ 1264*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1265*22dc650dSSadaf Ebrahimi\] # ] 1266*22dc650dSSadaf Ebrahimi) 1267*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1268*22dc650dSSadaf Ebrahimi(?: 1269*22dc650dSSadaf Ebrahimi\( # ( 1270*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1271*22dc650dSSadaf Ebrahimi(?: # ( 1272*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1273*22dc650dSSadaf Ebrahimi\( # ( 1274*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1275*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1276*22dc650dSSadaf Ebrahimi\) # ) 1277*22dc650dSSadaf Ebrahimi) # special 1278*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1279*22dc650dSSadaf Ebrahimi)* # )* 1280*22dc650dSSadaf Ebrahimi\) # ) 1281*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1282*22dc650dSSadaf Ebrahimi# optional trailing comments 1283*22dc650dSSadaf Ebrahimi)* 1284*22dc650dSSadaf Ebrahimi# address 1285*22dc650dSSadaf Ebrahimi| # or 1286*22dc650dSSadaf Ebrahimi(?: 1287*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1288*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1289*22dc650dSSadaf Ebrahimi# Atom 1290*22dc650dSSadaf Ebrahimi| # or 1291*22dc650dSSadaf Ebrahimi" # " 1292*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1293*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1294*22dc650dSSadaf Ebrahimi" # " 1295*22dc650dSSadaf Ebrahimi# Quoted string 1296*22dc650dSSadaf Ebrahimi) 1297*22dc650dSSadaf Ebrahimi# leading word 1298*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces 1299*22dc650dSSadaf Ebrahimi(?: 1300*22dc650dSSadaf Ebrahimi(?: 1301*22dc650dSSadaf Ebrahimi\( # ( 1302*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1303*22dc650dSSadaf Ebrahimi(?: # ( 1304*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1305*22dc650dSSadaf Ebrahimi\( # ( 1306*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1307*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1308*22dc650dSSadaf Ebrahimi\) # ) 1309*22dc650dSSadaf Ebrahimi) # special 1310*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1311*22dc650dSSadaf Ebrahimi)* # )* 1312*22dc650dSSadaf Ebrahimi\) # ) 1313*22dc650dSSadaf Ebrahimi| 1314*22dc650dSSadaf Ebrahimi" # " 1315*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1316*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1317*22dc650dSSadaf Ebrahimi" # " 1318*22dc650dSSadaf Ebrahimi) # "special" comment or quoted string 1319*22dc650dSSadaf Ebrahimi[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" 1320*22dc650dSSadaf Ebrahimi)* 1321*22dc650dSSadaf Ebrahimi< 1322*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1323*22dc650dSSadaf Ebrahimi(?: 1324*22dc650dSSadaf Ebrahimi\( # ( 1325*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1326*22dc650dSSadaf Ebrahimi(?: # ( 1327*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1328*22dc650dSSadaf Ebrahimi\( # ( 1329*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1330*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1331*22dc650dSSadaf Ebrahimi\) # ) 1332*22dc650dSSadaf Ebrahimi) # special 1333*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1334*22dc650dSSadaf Ebrahimi)* # )* 1335*22dc650dSSadaf Ebrahimi\) # ) 1336*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1337*22dc650dSSadaf Ebrahimi# < 1338*22dc650dSSadaf Ebrahimi(?: 1339*22dc650dSSadaf Ebrahimi@ 1340*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1341*22dc650dSSadaf Ebrahimi(?: 1342*22dc650dSSadaf Ebrahimi\( # ( 1343*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1344*22dc650dSSadaf Ebrahimi(?: # ( 1345*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1346*22dc650dSSadaf Ebrahimi\( # ( 1347*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1348*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1349*22dc650dSSadaf Ebrahimi\) # ) 1350*22dc650dSSadaf Ebrahimi) # special 1351*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1352*22dc650dSSadaf Ebrahimi)* # )* 1353*22dc650dSSadaf Ebrahimi\) # ) 1354*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1355*22dc650dSSadaf Ebrahimi(?: 1356*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1357*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1358*22dc650dSSadaf Ebrahimi| 1359*22dc650dSSadaf Ebrahimi\[ # [ 1360*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1361*22dc650dSSadaf Ebrahimi\] # ] 1362*22dc650dSSadaf Ebrahimi) 1363*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1364*22dc650dSSadaf Ebrahimi(?: 1365*22dc650dSSadaf Ebrahimi\( # ( 1366*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1367*22dc650dSSadaf Ebrahimi(?: # ( 1368*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1369*22dc650dSSadaf Ebrahimi\( # ( 1370*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1371*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1372*22dc650dSSadaf Ebrahimi\) # ) 1373*22dc650dSSadaf Ebrahimi) # special 1374*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1375*22dc650dSSadaf Ebrahimi)* # )* 1376*22dc650dSSadaf Ebrahimi\) # ) 1377*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1378*22dc650dSSadaf Ebrahimi# optional trailing comments 1379*22dc650dSSadaf Ebrahimi(?: 1380*22dc650dSSadaf Ebrahimi\. 1381*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1382*22dc650dSSadaf Ebrahimi(?: 1383*22dc650dSSadaf Ebrahimi\( # ( 1384*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1385*22dc650dSSadaf Ebrahimi(?: # ( 1386*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1387*22dc650dSSadaf Ebrahimi\( # ( 1388*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1389*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1390*22dc650dSSadaf Ebrahimi\) # ) 1391*22dc650dSSadaf Ebrahimi) # special 1392*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1393*22dc650dSSadaf Ebrahimi)* # )* 1394*22dc650dSSadaf Ebrahimi\) # ) 1395*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1396*22dc650dSSadaf Ebrahimi(?: 1397*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1398*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1399*22dc650dSSadaf Ebrahimi| 1400*22dc650dSSadaf Ebrahimi\[ # [ 1401*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1402*22dc650dSSadaf Ebrahimi\] # ] 1403*22dc650dSSadaf Ebrahimi) 1404*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1405*22dc650dSSadaf Ebrahimi(?: 1406*22dc650dSSadaf Ebrahimi\( # ( 1407*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1408*22dc650dSSadaf Ebrahimi(?: # ( 1409*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1410*22dc650dSSadaf Ebrahimi\( # ( 1411*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1412*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1413*22dc650dSSadaf Ebrahimi\) # ) 1414*22dc650dSSadaf Ebrahimi) # special 1415*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1416*22dc650dSSadaf Ebrahimi)* # )* 1417*22dc650dSSadaf Ebrahimi\) # ) 1418*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1419*22dc650dSSadaf Ebrahimi# optional trailing comments 1420*22dc650dSSadaf Ebrahimi)* 1421*22dc650dSSadaf Ebrahimi(?: , 1422*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1423*22dc650dSSadaf Ebrahimi(?: 1424*22dc650dSSadaf Ebrahimi\( # ( 1425*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1426*22dc650dSSadaf Ebrahimi(?: # ( 1427*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1428*22dc650dSSadaf Ebrahimi\( # ( 1429*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1430*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1431*22dc650dSSadaf Ebrahimi\) # ) 1432*22dc650dSSadaf Ebrahimi) # special 1433*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1434*22dc650dSSadaf Ebrahimi)* # )* 1435*22dc650dSSadaf Ebrahimi\) # ) 1436*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1437*22dc650dSSadaf Ebrahimi@ 1438*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1439*22dc650dSSadaf Ebrahimi(?: 1440*22dc650dSSadaf Ebrahimi\( # ( 1441*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1442*22dc650dSSadaf Ebrahimi(?: # ( 1443*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1444*22dc650dSSadaf Ebrahimi\( # ( 1445*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1446*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1447*22dc650dSSadaf Ebrahimi\) # ) 1448*22dc650dSSadaf Ebrahimi) # special 1449*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1450*22dc650dSSadaf Ebrahimi)* # )* 1451*22dc650dSSadaf Ebrahimi\) # ) 1452*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1453*22dc650dSSadaf Ebrahimi(?: 1454*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1455*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1456*22dc650dSSadaf Ebrahimi| 1457*22dc650dSSadaf Ebrahimi\[ # [ 1458*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1459*22dc650dSSadaf Ebrahimi\] # ] 1460*22dc650dSSadaf Ebrahimi) 1461*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1462*22dc650dSSadaf Ebrahimi(?: 1463*22dc650dSSadaf Ebrahimi\( # ( 1464*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1465*22dc650dSSadaf Ebrahimi(?: # ( 1466*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1467*22dc650dSSadaf Ebrahimi\( # ( 1468*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1469*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1470*22dc650dSSadaf Ebrahimi\) # ) 1471*22dc650dSSadaf Ebrahimi) # special 1472*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1473*22dc650dSSadaf Ebrahimi)* # )* 1474*22dc650dSSadaf Ebrahimi\) # ) 1475*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1476*22dc650dSSadaf Ebrahimi# optional trailing comments 1477*22dc650dSSadaf Ebrahimi(?: 1478*22dc650dSSadaf Ebrahimi\. 1479*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1480*22dc650dSSadaf Ebrahimi(?: 1481*22dc650dSSadaf Ebrahimi\( # ( 1482*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1483*22dc650dSSadaf Ebrahimi(?: # ( 1484*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1485*22dc650dSSadaf Ebrahimi\( # ( 1486*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1487*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1488*22dc650dSSadaf Ebrahimi\) # ) 1489*22dc650dSSadaf Ebrahimi) # special 1490*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1491*22dc650dSSadaf Ebrahimi)* # )* 1492*22dc650dSSadaf Ebrahimi\) # ) 1493*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1494*22dc650dSSadaf Ebrahimi(?: 1495*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1496*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1497*22dc650dSSadaf Ebrahimi| 1498*22dc650dSSadaf Ebrahimi\[ # [ 1499*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1500*22dc650dSSadaf Ebrahimi\] # ] 1501*22dc650dSSadaf Ebrahimi) 1502*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1503*22dc650dSSadaf Ebrahimi(?: 1504*22dc650dSSadaf Ebrahimi\( # ( 1505*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1506*22dc650dSSadaf Ebrahimi(?: # ( 1507*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1508*22dc650dSSadaf Ebrahimi\( # ( 1509*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1510*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1511*22dc650dSSadaf Ebrahimi\) # ) 1512*22dc650dSSadaf Ebrahimi) # special 1513*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1514*22dc650dSSadaf Ebrahimi)* # )* 1515*22dc650dSSadaf Ebrahimi\) # ) 1516*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1517*22dc650dSSadaf Ebrahimi# optional trailing comments 1518*22dc650dSSadaf Ebrahimi)* 1519*22dc650dSSadaf Ebrahimi)* # additional domains 1520*22dc650dSSadaf Ebrahimi: 1521*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1522*22dc650dSSadaf Ebrahimi(?: 1523*22dc650dSSadaf Ebrahimi\( # ( 1524*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1525*22dc650dSSadaf Ebrahimi(?: # ( 1526*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1527*22dc650dSSadaf Ebrahimi\( # ( 1528*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1529*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1530*22dc650dSSadaf Ebrahimi\) # ) 1531*22dc650dSSadaf Ebrahimi) # special 1532*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1533*22dc650dSSadaf Ebrahimi)* # )* 1534*22dc650dSSadaf Ebrahimi\) # ) 1535*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1536*22dc650dSSadaf Ebrahimi# optional trailing comments 1537*22dc650dSSadaf Ebrahimi)? # optional route 1538*22dc650dSSadaf Ebrahimi(?: 1539*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1540*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1541*22dc650dSSadaf Ebrahimi# Atom 1542*22dc650dSSadaf Ebrahimi| # or 1543*22dc650dSSadaf Ebrahimi" # " 1544*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1545*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1546*22dc650dSSadaf Ebrahimi" # " 1547*22dc650dSSadaf Ebrahimi# Quoted string 1548*22dc650dSSadaf Ebrahimi) 1549*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1550*22dc650dSSadaf Ebrahimi(?: 1551*22dc650dSSadaf Ebrahimi\( # ( 1552*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1553*22dc650dSSadaf Ebrahimi(?: # ( 1554*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1555*22dc650dSSadaf Ebrahimi\( # ( 1556*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1557*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1558*22dc650dSSadaf Ebrahimi\) # ) 1559*22dc650dSSadaf Ebrahimi) # special 1560*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1561*22dc650dSSadaf Ebrahimi)* # )* 1562*22dc650dSSadaf Ebrahimi\) # ) 1563*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1564*22dc650dSSadaf Ebrahimi(?: 1565*22dc650dSSadaf Ebrahimi\. 1566*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1567*22dc650dSSadaf Ebrahimi(?: 1568*22dc650dSSadaf Ebrahimi\( # ( 1569*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1570*22dc650dSSadaf Ebrahimi(?: # ( 1571*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1572*22dc650dSSadaf Ebrahimi\( # ( 1573*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1574*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1575*22dc650dSSadaf Ebrahimi\) # ) 1576*22dc650dSSadaf Ebrahimi) # special 1577*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1578*22dc650dSSadaf Ebrahimi)* # )* 1579*22dc650dSSadaf Ebrahimi\) # ) 1580*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1581*22dc650dSSadaf Ebrahimi(?: 1582*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1583*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1584*22dc650dSSadaf Ebrahimi# Atom 1585*22dc650dSSadaf Ebrahimi| # or 1586*22dc650dSSadaf Ebrahimi" # " 1587*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015"] * # normal 1588*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 1589*22dc650dSSadaf Ebrahimi" # " 1590*22dc650dSSadaf Ebrahimi# Quoted string 1591*22dc650dSSadaf Ebrahimi) 1592*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1593*22dc650dSSadaf Ebrahimi(?: 1594*22dc650dSSadaf Ebrahimi\( # ( 1595*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1596*22dc650dSSadaf Ebrahimi(?: # ( 1597*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1598*22dc650dSSadaf Ebrahimi\( # ( 1599*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1600*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1601*22dc650dSSadaf Ebrahimi\) # ) 1602*22dc650dSSadaf Ebrahimi) # special 1603*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1604*22dc650dSSadaf Ebrahimi)* # )* 1605*22dc650dSSadaf Ebrahimi\) # ) 1606*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1607*22dc650dSSadaf Ebrahimi# additional words 1608*22dc650dSSadaf Ebrahimi)* 1609*22dc650dSSadaf Ebrahimi@ 1610*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1611*22dc650dSSadaf Ebrahimi(?: 1612*22dc650dSSadaf Ebrahimi\( # ( 1613*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1614*22dc650dSSadaf Ebrahimi(?: # ( 1615*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1616*22dc650dSSadaf Ebrahimi\( # ( 1617*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1618*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1619*22dc650dSSadaf Ebrahimi\) # ) 1620*22dc650dSSadaf Ebrahimi) # special 1621*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1622*22dc650dSSadaf Ebrahimi)* # )* 1623*22dc650dSSadaf Ebrahimi\) # ) 1624*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1625*22dc650dSSadaf Ebrahimi(?: 1626*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1627*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1628*22dc650dSSadaf Ebrahimi| 1629*22dc650dSSadaf Ebrahimi\[ # [ 1630*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1631*22dc650dSSadaf Ebrahimi\] # ] 1632*22dc650dSSadaf Ebrahimi) 1633*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1634*22dc650dSSadaf Ebrahimi(?: 1635*22dc650dSSadaf Ebrahimi\( # ( 1636*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1637*22dc650dSSadaf Ebrahimi(?: # ( 1638*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1639*22dc650dSSadaf Ebrahimi\( # ( 1640*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1641*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1642*22dc650dSSadaf Ebrahimi\) # ) 1643*22dc650dSSadaf Ebrahimi) # special 1644*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1645*22dc650dSSadaf Ebrahimi)* # )* 1646*22dc650dSSadaf Ebrahimi\) # ) 1647*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1648*22dc650dSSadaf Ebrahimi# optional trailing comments 1649*22dc650dSSadaf Ebrahimi(?: 1650*22dc650dSSadaf Ebrahimi\. 1651*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1652*22dc650dSSadaf Ebrahimi(?: 1653*22dc650dSSadaf Ebrahimi\( # ( 1654*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1655*22dc650dSSadaf Ebrahimi(?: # ( 1656*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1657*22dc650dSSadaf Ebrahimi\( # ( 1658*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1659*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1660*22dc650dSSadaf Ebrahimi\) # ) 1661*22dc650dSSadaf Ebrahimi) # special 1662*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1663*22dc650dSSadaf Ebrahimi)* # )* 1664*22dc650dSSadaf Ebrahimi\) # ) 1665*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1666*22dc650dSSadaf Ebrahimi(?: 1667*22dc650dSSadaf Ebrahimi[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1668*22dc650dSSadaf Ebrahimi(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1669*22dc650dSSadaf Ebrahimi| 1670*22dc650dSSadaf Ebrahimi\[ # [ 1671*22dc650dSSadaf Ebrahimi(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1672*22dc650dSSadaf Ebrahimi\] # ] 1673*22dc650dSSadaf Ebrahimi) 1674*22dc650dSSadaf Ebrahimi[\040\t]* # Nab whitespace. 1675*22dc650dSSadaf Ebrahimi(?: 1676*22dc650dSSadaf Ebrahimi\( # ( 1677*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1678*22dc650dSSadaf Ebrahimi(?: # ( 1679*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] | 1680*22dc650dSSadaf Ebrahimi\( # ( 1681*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1682*22dc650dSSadaf Ebrahimi(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 1683*22dc650dSSadaf Ebrahimi\) # ) 1684*22dc650dSSadaf Ebrahimi) # special 1685*22dc650dSSadaf Ebrahimi[^\\\x80-\xff\n\015()] * # normal* 1686*22dc650dSSadaf Ebrahimi)* # )* 1687*22dc650dSSadaf Ebrahimi\) # ) 1688*22dc650dSSadaf Ebrahimi[\040\t]* )* # If comment found, allow more spaces. 1689*22dc650dSSadaf Ebrahimi# optional trailing comments 1690*22dc650dSSadaf Ebrahimi)* 1691*22dc650dSSadaf Ebrahimi# address spec 1692*22dc650dSSadaf Ebrahimi> # > 1693*22dc650dSSadaf Ebrahimi# name and address 1694*22dc650dSSadaf Ebrahimi) 1695*22dc650dSSadaf Ebrahimi/x 1696*22dc650dSSadaf Ebrahimi Alan Other <user\@dom.ain> 1697*22dc650dSSadaf Ebrahimi 0: Alan Other <[email protected]> 1698*22dc650dSSadaf Ebrahimi <user\@dom.ain> 1699*22dc650dSSadaf Ebrahimi 0: [email protected] 1700*22dc650dSSadaf Ebrahimi user\@dom.ain 1701*22dc650dSSadaf Ebrahimi 0: [email protected] 1702*22dc650dSSadaf Ebrahimi \"A. Other\" <user.1234\@dom.ain> (a comment) 1703*22dc650dSSadaf Ebrahimi 0: "A. Other" <[email protected]> 1704*22dc650dSSadaf Ebrahimi A. Other <user.1234\@dom.ain> (a comment) 1705*22dc650dSSadaf Ebrahimi 0: Other <[email protected]> 1706*22dc650dSSadaf Ebrahimi \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 1707*22dc650dSSadaf Ebrahimi 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay 1708*22dc650dSSadaf Ebrahimi A missing angle <user\@some.where 1709*22dc650dSSadaf Ebrahimi 0: [email protected] 1710*22dc650dSSadaf Ebrahimi\= Expect no match 1711*22dc650dSSadaf Ebrahimi The quick brown fox 1712*22dc650dSSadaf EbrahimiNo match 1713*22dc650dSSadaf Ebrahimi 1714*22dc650dSSadaf Ebrahimi/abc\0def\00pqr\000xyz\0000AB/ 1715*22dc650dSSadaf Ebrahimi abc\0def\00pqr\000xyz\0000AB 1716*22dc650dSSadaf Ebrahimi 0: abc\x00def\x00pqr\x00xyz\x000AB 1717*22dc650dSSadaf Ebrahimi abc456 abc\0def\00pqr\000xyz\0000ABCDE 1718*22dc650dSSadaf Ebrahimi 0: abc\x00def\x00pqr\x00xyz\x000AB 1719*22dc650dSSadaf Ebrahimi 1720*22dc650dSSadaf Ebrahimi/abc\x0def\x00pqr\x000xyz\x0000AB/ 1721*22dc650dSSadaf Ebrahimi abc\x0def\x00pqr\x000xyz\x0000AB 1722*22dc650dSSadaf Ebrahimi 0: abc\x0def\x00pqr\x000xyz\x0000AB 1723*22dc650dSSadaf Ebrahimi abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE 1724*22dc650dSSadaf Ebrahimi 0: abc\x0def\x00pqr\x000xyz\x0000AB 1725*22dc650dSSadaf Ebrahimi 1726*22dc650dSSadaf Ebrahimi/^[\000-\037]/ 1727*22dc650dSSadaf Ebrahimi \0A 1728*22dc650dSSadaf Ebrahimi 0: \x00 1729*22dc650dSSadaf Ebrahimi \01B 1730*22dc650dSSadaf Ebrahimi 0: \x01 1731*22dc650dSSadaf Ebrahimi \037C 1732*22dc650dSSadaf Ebrahimi 0: \x1f 1733*22dc650dSSadaf Ebrahimi 1734*22dc650dSSadaf Ebrahimi/\0*/ 1735*22dc650dSSadaf Ebrahimi \0\0\0\0 1736*22dc650dSSadaf Ebrahimi 0: \x00\x00\x00\x00 1737*22dc650dSSadaf Ebrahimi 1738*22dc650dSSadaf Ebrahimi/A\x0{2,3}Z/ 1739*22dc650dSSadaf Ebrahimi The A\x0\x0Z 1740*22dc650dSSadaf Ebrahimi 0: A\x00\x00Z 1741*22dc650dSSadaf Ebrahimi An A\0\x0\0Z 1742*22dc650dSSadaf Ebrahimi 0: A\x00\x00\x00Z 1743*22dc650dSSadaf Ebrahimi\= Expect no match 1744*22dc650dSSadaf Ebrahimi A\0Z 1745*22dc650dSSadaf EbrahimiNo match 1746*22dc650dSSadaf Ebrahimi A\0\x0\0\x0Z 1747*22dc650dSSadaf EbrahimiNo match 1748*22dc650dSSadaf Ebrahimi 1749*22dc650dSSadaf Ebrahimi/^(cow|)\1(bell)/ 1750*22dc650dSSadaf Ebrahimi cowcowbell 1751*22dc650dSSadaf Ebrahimi 0: cowcowbell 1752*22dc650dSSadaf Ebrahimi 1: cow 1753*22dc650dSSadaf Ebrahimi 2: bell 1754*22dc650dSSadaf Ebrahimi bell 1755*22dc650dSSadaf Ebrahimi 0: bell 1756*22dc650dSSadaf Ebrahimi 1: 1757*22dc650dSSadaf Ebrahimi 2: bell 1758*22dc650dSSadaf Ebrahimi\= Expect no match 1759*22dc650dSSadaf Ebrahimi cowbell 1760*22dc650dSSadaf EbrahimiNo match 1761*22dc650dSSadaf Ebrahimi 1762*22dc650dSSadaf Ebrahimi/^\s/ 1763*22dc650dSSadaf Ebrahimi \040abc 1764*22dc650dSSadaf Ebrahimi 0: 1765*22dc650dSSadaf Ebrahimi \x0cabc 1766*22dc650dSSadaf Ebrahimi 0: \x0c 1767*22dc650dSSadaf Ebrahimi \nabc 1768*22dc650dSSadaf Ebrahimi 0: \x0a 1769*22dc650dSSadaf Ebrahimi \rabc 1770*22dc650dSSadaf Ebrahimi 0: \x0d 1771*22dc650dSSadaf Ebrahimi \tabc 1772*22dc650dSSadaf Ebrahimi 0: \x09 1773*22dc650dSSadaf Ebrahimi\= Expect no match 1774*22dc650dSSadaf Ebrahimi abc 1775*22dc650dSSadaf EbrahimiNo match 1776*22dc650dSSadaf Ebrahimi 1777*22dc650dSSadaf Ebrahimi/^a b 1778*22dc650dSSadaf Ebrahimi c/x 1779*22dc650dSSadaf Ebrahimi abc 1780*22dc650dSSadaf Ebrahimi 0: abc 1781*22dc650dSSadaf Ebrahimi 1782*22dc650dSSadaf Ebrahimi/^(a|)\1*b/ 1783*22dc650dSSadaf Ebrahimi ab 1784*22dc650dSSadaf Ebrahimi 0: ab 1785*22dc650dSSadaf Ebrahimi 1: a 1786*22dc650dSSadaf Ebrahimi aaaab 1787*22dc650dSSadaf Ebrahimi 0: aaaab 1788*22dc650dSSadaf Ebrahimi 1: a 1789*22dc650dSSadaf Ebrahimi b 1790*22dc650dSSadaf Ebrahimi 0: b 1791*22dc650dSSadaf Ebrahimi 1: 1792*22dc650dSSadaf Ebrahimi\= Expect no match 1793*22dc650dSSadaf Ebrahimi acb 1794*22dc650dSSadaf EbrahimiNo match 1795*22dc650dSSadaf Ebrahimi 1796*22dc650dSSadaf Ebrahimi/^(a|)\1+b/ 1797*22dc650dSSadaf Ebrahimi aab 1798*22dc650dSSadaf Ebrahimi 0: aab 1799*22dc650dSSadaf Ebrahimi 1: a 1800*22dc650dSSadaf Ebrahimi aaaab 1801*22dc650dSSadaf Ebrahimi 0: aaaab 1802*22dc650dSSadaf Ebrahimi 1: a 1803*22dc650dSSadaf Ebrahimi b 1804*22dc650dSSadaf Ebrahimi 0: b 1805*22dc650dSSadaf Ebrahimi 1: 1806*22dc650dSSadaf Ebrahimi\= Expect no match 1807*22dc650dSSadaf Ebrahimi ab 1808*22dc650dSSadaf EbrahimiNo match 1809*22dc650dSSadaf Ebrahimi 1810*22dc650dSSadaf Ebrahimi/^(a|)\1?b/ 1811*22dc650dSSadaf Ebrahimi ab 1812*22dc650dSSadaf Ebrahimi 0: ab 1813*22dc650dSSadaf Ebrahimi 1: a 1814*22dc650dSSadaf Ebrahimi aab 1815*22dc650dSSadaf Ebrahimi 0: aab 1816*22dc650dSSadaf Ebrahimi 1: a 1817*22dc650dSSadaf Ebrahimi b 1818*22dc650dSSadaf Ebrahimi 0: b 1819*22dc650dSSadaf Ebrahimi 1: 1820*22dc650dSSadaf Ebrahimi\= Expect no match 1821*22dc650dSSadaf Ebrahimi acb 1822*22dc650dSSadaf EbrahimiNo match 1823*22dc650dSSadaf Ebrahimi 1824*22dc650dSSadaf Ebrahimi/^(a|)\1{2}b/ 1825*22dc650dSSadaf Ebrahimi aaab 1826*22dc650dSSadaf Ebrahimi 0: aaab 1827*22dc650dSSadaf Ebrahimi 1: a 1828*22dc650dSSadaf Ebrahimi b 1829*22dc650dSSadaf Ebrahimi 0: b 1830*22dc650dSSadaf Ebrahimi 1: 1831*22dc650dSSadaf Ebrahimi\= Expect no match 1832*22dc650dSSadaf Ebrahimi ab 1833*22dc650dSSadaf EbrahimiNo match 1834*22dc650dSSadaf Ebrahimi aab 1835*22dc650dSSadaf EbrahimiNo match 1836*22dc650dSSadaf Ebrahimi aaaab 1837*22dc650dSSadaf EbrahimiNo match 1838*22dc650dSSadaf Ebrahimi 1839*22dc650dSSadaf Ebrahimi/^(a|)\1{2,3}b/ 1840*22dc650dSSadaf Ebrahimi aaab 1841*22dc650dSSadaf Ebrahimi 0: aaab 1842*22dc650dSSadaf Ebrahimi 1: a 1843*22dc650dSSadaf Ebrahimi aaaab 1844*22dc650dSSadaf Ebrahimi 0: aaaab 1845*22dc650dSSadaf Ebrahimi 1: a 1846*22dc650dSSadaf Ebrahimi b 1847*22dc650dSSadaf Ebrahimi 0: b 1848*22dc650dSSadaf Ebrahimi 1: 1849*22dc650dSSadaf Ebrahimi\= Expect no match 1850*22dc650dSSadaf Ebrahimi ab 1851*22dc650dSSadaf EbrahimiNo match 1852*22dc650dSSadaf Ebrahimi aab 1853*22dc650dSSadaf EbrahimiNo match 1854*22dc650dSSadaf Ebrahimi aaaaab 1855*22dc650dSSadaf EbrahimiNo match 1856*22dc650dSSadaf Ebrahimi 1857*22dc650dSSadaf Ebrahimi/ab{1,3}bc/ 1858*22dc650dSSadaf Ebrahimi abbbbc 1859*22dc650dSSadaf Ebrahimi 0: abbbbc 1860*22dc650dSSadaf Ebrahimi abbbc 1861*22dc650dSSadaf Ebrahimi 0: abbbc 1862*22dc650dSSadaf Ebrahimi abbc 1863*22dc650dSSadaf Ebrahimi 0: abbc 1864*22dc650dSSadaf Ebrahimi\= Expect no match 1865*22dc650dSSadaf Ebrahimi abc 1866*22dc650dSSadaf EbrahimiNo match 1867*22dc650dSSadaf Ebrahimi abbbbbc 1868*22dc650dSSadaf EbrahimiNo match 1869*22dc650dSSadaf Ebrahimi 1870*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/ 1871*22dc650dSSadaf Ebrahimi track1.title:TBlah blah blah 1872*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah 1873*22dc650dSSadaf Ebrahimi 1: track1 1874*22dc650dSSadaf Ebrahimi 2: title 1875*22dc650dSSadaf Ebrahimi 3: Blah blah blah 1876*22dc650dSSadaf Ebrahimi 1877*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[T ]+(.*)/i 1878*22dc650dSSadaf Ebrahimi track1.title:TBlah blah blah 1879*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah 1880*22dc650dSSadaf Ebrahimi 1: track1 1881*22dc650dSSadaf Ebrahimi 2: title 1882*22dc650dSSadaf Ebrahimi 3: Blah blah blah 1883*22dc650dSSadaf Ebrahimi 1884*22dc650dSSadaf Ebrahimi/([^.]*)\.([^:]*):[t ]+(.*)/i 1885*22dc650dSSadaf Ebrahimi track1.title:TBlah blah blah 1886*22dc650dSSadaf Ebrahimi 0: track1.title:TBlah blah blah 1887*22dc650dSSadaf Ebrahimi 1: track1 1888*22dc650dSSadaf Ebrahimi 2: title 1889*22dc650dSSadaf Ebrahimi 3: Blah blah blah 1890*22dc650dSSadaf Ebrahimi 1891*22dc650dSSadaf Ebrahimi/^[W-c]+$/ 1892*22dc650dSSadaf Ebrahimi WXY_^abc 1893*22dc650dSSadaf Ebrahimi 0: WXY_^abc 1894*22dc650dSSadaf Ebrahimi\= Expect no match 1895*22dc650dSSadaf Ebrahimi wxy 1896*22dc650dSSadaf EbrahimiNo match 1897*22dc650dSSadaf Ebrahimi 1898*22dc650dSSadaf Ebrahimi/^[W-c]+$/i 1899*22dc650dSSadaf Ebrahimi WXY_^abc 1900*22dc650dSSadaf Ebrahimi 0: WXY_^abc 1901*22dc650dSSadaf Ebrahimi wxy_^ABC 1902*22dc650dSSadaf Ebrahimi 0: wxy_^ABC 1903*22dc650dSSadaf Ebrahimi 1904*22dc650dSSadaf Ebrahimi/^[\x3f-\x5F]+$/i 1905*22dc650dSSadaf Ebrahimi WXY_^abc 1906*22dc650dSSadaf Ebrahimi 0: WXY_^abc 1907*22dc650dSSadaf Ebrahimi wxy_^ABC 1908*22dc650dSSadaf Ebrahimi 0: wxy_^ABC 1909*22dc650dSSadaf Ebrahimi 1910*22dc650dSSadaf Ebrahimi/^abc$/m 1911*22dc650dSSadaf Ebrahimi abc 1912*22dc650dSSadaf Ebrahimi 0: abc 1913*22dc650dSSadaf Ebrahimi qqq\nabc 1914*22dc650dSSadaf Ebrahimi 0: abc 1915*22dc650dSSadaf Ebrahimi abc\nzzz 1916*22dc650dSSadaf Ebrahimi 0: abc 1917*22dc650dSSadaf Ebrahimi qqq\nabc\nzzz 1918*22dc650dSSadaf Ebrahimi 0: abc 1919*22dc650dSSadaf Ebrahimi 1920*22dc650dSSadaf Ebrahimi/^abc$/ 1921*22dc650dSSadaf Ebrahimi abc 1922*22dc650dSSadaf Ebrahimi 0: abc 1923*22dc650dSSadaf Ebrahimi\= Expect no match 1924*22dc650dSSadaf Ebrahimi qqq\nabc 1925*22dc650dSSadaf EbrahimiNo match 1926*22dc650dSSadaf Ebrahimi abc\nzzz 1927*22dc650dSSadaf EbrahimiNo match 1928*22dc650dSSadaf Ebrahimi qqq\nabc\nzzz 1929*22dc650dSSadaf EbrahimiNo match 1930*22dc650dSSadaf Ebrahimi 1931*22dc650dSSadaf Ebrahimi/\Aabc\Z/m 1932*22dc650dSSadaf Ebrahimi abc 1933*22dc650dSSadaf Ebrahimi 0: abc 1934*22dc650dSSadaf Ebrahimi abc\n 1935*22dc650dSSadaf Ebrahimi 0: abc 1936*22dc650dSSadaf Ebrahimi\= Expect no match 1937*22dc650dSSadaf Ebrahimi qqq\nabc 1938*22dc650dSSadaf EbrahimiNo match 1939*22dc650dSSadaf Ebrahimi abc\nzzz 1940*22dc650dSSadaf EbrahimiNo match 1941*22dc650dSSadaf Ebrahimi qqq\nabc\nzzz 1942*22dc650dSSadaf EbrahimiNo match 1943*22dc650dSSadaf Ebrahimi 1944*22dc650dSSadaf Ebrahimi/\A(.)*\Z/s 1945*22dc650dSSadaf Ebrahimi abc\ndef 1946*22dc650dSSadaf Ebrahimi 0: abc\x0adef 1947*22dc650dSSadaf Ebrahimi 1: f 1948*22dc650dSSadaf Ebrahimi 1949*22dc650dSSadaf Ebrahimi/\A(.)*\Z/m 1950*22dc650dSSadaf Ebrahimi\= Expect no match 1951*22dc650dSSadaf Ebrahimi abc\ndef 1952*22dc650dSSadaf EbrahimiNo match 1953*22dc650dSSadaf Ebrahimi 1954*22dc650dSSadaf Ebrahimi/(?:b)|(?::+)/ 1955*22dc650dSSadaf Ebrahimi b::c 1956*22dc650dSSadaf Ebrahimi 0: b 1957*22dc650dSSadaf Ebrahimi c::b 1958*22dc650dSSadaf Ebrahimi 0: :: 1959*22dc650dSSadaf Ebrahimi 1960*22dc650dSSadaf Ebrahimi/[-az]+/ 1961*22dc650dSSadaf Ebrahimi az- 1962*22dc650dSSadaf Ebrahimi 0: az- 1963*22dc650dSSadaf Ebrahimi\= Expect no match 1964*22dc650dSSadaf Ebrahimi b 1965*22dc650dSSadaf EbrahimiNo match 1966*22dc650dSSadaf Ebrahimi 1967*22dc650dSSadaf Ebrahimi/[az-]+/ 1968*22dc650dSSadaf Ebrahimi za- 1969*22dc650dSSadaf Ebrahimi 0: za- 1970*22dc650dSSadaf Ebrahimi\= Expect no match 1971*22dc650dSSadaf Ebrahimi b 1972*22dc650dSSadaf EbrahimiNo match 1973*22dc650dSSadaf Ebrahimi 1974*22dc650dSSadaf Ebrahimi/[a\-z]+/ 1975*22dc650dSSadaf Ebrahimi a-z 1976*22dc650dSSadaf Ebrahimi 0: a-z 1977*22dc650dSSadaf Ebrahimi\= Expect no match 1978*22dc650dSSadaf Ebrahimi b 1979*22dc650dSSadaf EbrahimiNo match 1980*22dc650dSSadaf Ebrahimi 1981*22dc650dSSadaf Ebrahimi/[a-z]+/ 1982*22dc650dSSadaf Ebrahimi abcdxyz 1983*22dc650dSSadaf Ebrahimi 0: abcdxyz 1984*22dc650dSSadaf Ebrahimi 1985*22dc650dSSadaf Ebrahimi/[\d-]+/ 1986*22dc650dSSadaf Ebrahimi 12-34 1987*22dc650dSSadaf Ebrahimi 0: 12-34 1988*22dc650dSSadaf Ebrahimi\= Expect no match 1989*22dc650dSSadaf Ebrahimi aaa 1990*22dc650dSSadaf EbrahimiNo match 1991*22dc650dSSadaf Ebrahimi 1992*22dc650dSSadaf Ebrahimi/\x5c/ 1993*22dc650dSSadaf Ebrahimi \\ 1994*22dc650dSSadaf Ebrahimi 0: \ 1995*22dc650dSSadaf Ebrahimi 1996*22dc650dSSadaf Ebrahimi/\x20Z/ 1997*22dc650dSSadaf Ebrahimi the Zoo 1998*22dc650dSSadaf Ebrahimi 0: Z 1999*22dc650dSSadaf Ebrahimi\= Expect no match 2000*22dc650dSSadaf Ebrahimi Zulu 2001*22dc650dSSadaf EbrahimiNo match 2002*22dc650dSSadaf Ebrahimi 2003*22dc650dSSadaf Ebrahimi/(abc)\1/i 2004*22dc650dSSadaf Ebrahimi abcabc 2005*22dc650dSSadaf Ebrahimi 0: abcabc 2006*22dc650dSSadaf Ebrahimi 1: abc 2007*22dc650dSSadaf Ebrahimi ABCabc 2008*22dc650dSSadaf Ebrahimi 0: ABCabc 2009*22dc650dSSadaf Ebrahimi 1: ABC 2010*22dc650dSSadaf Ebrahimi abcABC 2011*22dc650dSSadaf Ebrahimi 0: abcABC 2012*22dc650dSSadaf Ebrahimi 1: abc 2013*22dc650dSSadaf Ebrahimi 2014*22dc650dSSadaf Ebrahimi/abc$/ 2015*22dc650dSSadaf Ebrahimi abc 2016*22dc650dSSadaf Ebrahimi 0: abc 2017*22dc650dSSadaf Ebrahimi abc\n 2018*22dc650dSSadaf Ebrahimi 0: abc 2019*22dc650dSSadaf Ebrahimi\= Expect no match 2020*22dc650dSSadaf Ebrahimi abc\ndef 2021*22dc650dSSadaf EbrahimiNo match 2022*22dc650dSSadaf Ebrahimi 2023*22dc650dSSadaf Ebrahimi/(abc)\123/ 2024*22dc650dSSadaf Ebrahimi abc\x53 2025*22dc650dSSadaf Ebrahimi 0: abcS 2026*22dc650dSSadaf Ebrahimi 1: abc 2027*22dc650dSSadaf Ebrahimi 2028*22dc650dSSadaf Ebrahimi/(abc)\223/ 2029*22dc650dSSadaf Ebrahimi abc\x93 2030*22dc650dSSadaf Ebrahimi 0: abc\x93 2031*22dc650dSSadaf Ebrahimi 1: abc 2032*22dc650dSSadaf Ebrahimi 2033*22dc650dSSadaf Ebrahimi/(abc)\323/ 2034*22dc650dSSadaf Ebrahimi abc\xd3 2035*22dc650dSSadaf Ebrahimi 0: abc\xd3 2036*22dc650dSSadaf Ebrahimi 1: abc 2037*22dc650dSSadaf Ebrahimi 2038*22dc650dSSadaf Ebrahimi/(abc)\100/ 2039*22dc650dSSadaf Ebrahimi abc\x40 2040*22dc650dSSadaf Ebrahimi 0: abc@ 2041*22dc650dSSadaf Ebrahimi 1: abc 2042*22dc650dSSadaf Ebrahimi abc\100 2043*22dc650dSSadaf Ebrahimi 0: abc@ 2044*22dc650dSSadaf Ebrahimi 1: abc 2045*22dc650dSSadaf Ebrahimi 2046*22dc650dSSadaf Ebrahimi/(abc)\1000/ 2047*22dc650dSSadaf Ebrahimi abc\x400 2048*22dc650dSSadaf Ebrahimi 0: abc@0 2049*22dc650dSSadaf Ebrahimi 1: abc 2050*22dc650dSSadaf Ebrahimi abc\x40\x30 2051*22dc650dSSadaf Ebrahimi 0: abc@0 2052*22dc650dSSadaf Ebrahimi 1: abc 2053*22dc650dSSadaf Ebrahimi abc\1000 2054*22dc650dSSadaf Ebrahimi 0: abc@0 2055*22dc650dSSadaf Ebrahimi 1: abc 2056*22dc650dSSadaf Ebrahimi abc\100\x30 2057*22dc650dSSadaf Ebrahimi 0: abc@0 2058*22dc650dSSadaf Ebrahimi 1: abc 2059*22dc650dSSadaf Ebrahimi abc\100\060 2060*22dc650dSSadaf Ebrahimi 0: abc@0 2061*22dc650dSSadaf Ebrahimi 1: abc 2062*22dc650dSSadaf Ebrahimi abc\100\60 2063*22dc650dSSadaf Ebrahimi 0: abc@0 2064*22dc650dSSadaf Ebrahimi 1: abc 2065*22dc650dSSadaf Ebrahimi 2066*22dc650dSSadaf Ebrahimi/^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/ 2067*22dc650dSSadaf Ebrahimi ABCDEFGHIHI 2068*22dc650dSSadaf Ebrahimi 0: ABCDEFGHIHI 2069*22dc650dSSadaf Ebrahimi 1: A 2070*22dc650dSSadaf Ebrahimi 2: B 2071*22dc650dSSadaf Ebrahimi 3: C 2072*22dc650dSSadaf Ebrahimi 4: D 2073*22dc650dSSadaf Ebrahimi 5: E 2074*22dc650dSSadaf Ebrahimi 6: F 2075*22dc650dSSadaf Ebrahimi 7: G 2076*22dc650dSSadaf Ebrahimi 8: H 2077*22dc650dSSadaf Ebrahimi 9: I 2078*22dc650dSSadaf Ebrahimi 2079*22dc650dSSadaf Ebrahimi/^[A\8B\9C]+$/ 2080*22dc650dSSadaf Ebrahimi A8B9C 2081*22dc650dSSadaf Ebrahimi 0: A8B9C 2082*22dc650dSSadaf Ebrahimi\= Expect no match 2083*22dc650dSSadaf Ebrahimi A8B9C\x00 2084*22dc650dSSadaf EbrahimiNo match 2085*22dc650dSSadaf Ebrahimi 2086*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/ 2087*22dc650dSSadaf Ebrahimi abcdefghijkllS 2088*22dc650dSSadaf Ebrahimi 0: abcdefghijkllS 2089*22dc650dSSadaf Ebrahimi 1: a 2090*22dc650dSSadaf Ebrahimi 2: b 2091*22dc650dSSadaf Ebrahimi 3: c 2092*22dc650dSSadaf Ebrahimi 4: d 2093*22dc650dSSadaf Ebrahimi 5: e 2094*22dc650dSSadaf Ebrahimi 6: f 2095*22dc650dSSadaf Ebrahimi 7: g 2096*22dc650dSSadaf Ebrahimi 8: h 2097*22dc650dSSadaf Ebrahimi 9: i 2098*22dc650dSSadaf Ebrahimi10: j 2099*22dc650dSSadaf Ebrahimi11: k 2100*22dc650dSSadaf Ebrahimi12: l 2101*22dc650dSSadaf Ebrahimi 2102*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ 2103*22dc650dSSadaf Ebrahimi abcdefghijk\12S 2104*22dc650dSSadaf Ebrahimi 0: abcdefghijk\x0aS 2105*22dc650dSSadaf Ebrahimi 1: a 2106*22dc650dSSadaf Ebrahimi 2: b 2107*22dc650dSSadaf Ebrahimi 3: c 2108*22dc650dSSadaf Ebrahimi 4: d 2109*22dc650dSSadaf Ebrahimi 5: e 2110*22dc650dSSadaf Ebrahimi 6: f 2111*22dc650dSSadaf Ebrahimi 7: g 2112*22dc650dSSadaf Ebrahimi 8: h 2113*22dc650dSSadaf Ebrahimi 9: i 2114*22dc650dSSadaf Ebrahimi10: j 2115*22dc650dSSadaf Ebrahimi11: k 2116*22dc650dSSadaf Ebrahimi 2117*22dc650dSSadaf Ebrahimi/a{0}bc/ 2118*22dc650dSSadaf Ebrahimi bc 2119*22dc650dSSadaf Ebrahimi 0: bc 2120*22dc650dSSadaf Ebrahimi 2121*22dc650dSSadaf Ebrahimi/(a|(bc)){0,0}?xyz/ 2122*22dc650dSSadaf Ebrahimi xyz 2123*22dc650dSSadaf Ebrahimi 0: xyz 2124*22dc650dSSadaf Ebrahimi 2125*22dc650dSSadaf Ebrahimi/abc[\10]de/ 2126*22dc650dSSadaf Ebrahimi abc\010de 2127*22dc650dSSadaf Ebrahimi 0: abc\x08de 2128*22dc650dSSadaf Ebrahimi 2129*22dc650dSSadaf Ebrahimi/abc[\1]de/ 2130*22dc650dSSadaf Ebrahimi abc\1de 2131*22dc650dSSadaf Ebrahimi 0: abc\x01de 2132*22dc650dSSadaf Ebrahimi 2133*22dc650dSSadaf Ebrahimi/(abc)[\1]de/ 2134*22dc650dSSadaf Ebrahimi abc\1de 2135*22dc650dSSadaf Ebrahimi 0: abc\x01de 2136*22dc650dSSadaf Ebrahimi 1: abc 2137*22dc650dSSadaf Ebrahimi 2138*22dc650dSSadaf Ebrahimi/(?s)a.b/ 2139*22dc650dSSadaf Ebrahimi a\nb 2140*22dc650dSSadaf Ebrahimi 0: a\x0ab 2141*22dc650dSSadaf Ebrahimi 2142*22dc650dSSadaf Ebrahimi/^([^a])([^\b])([^c]*)([^d]{3,4})/ 2143*22dc650dSSadaf Ebrahimi baNOTccccd 2144*22dc650dSSadaf Ebrahimi 0: baNOTcccc 2145*22dc650dSSadaf Ebrahimi 1: b 2146*22dc650dSSadaf Ebrahimi 2: a 2147*22dc650dSSadaf Ebrahimi 3: NOT 2148*22dc650dSSadaf Ebrahimi 4: cccc 2149*22dc650dSSadaf Ebrahimi baNOTcccd 2150*22dc650dSSadaf Ebrahimi 0: baNOTccc 2151*22dc650dSSadaf Ebrahimi 1: b 2152*22dc650dSSadaf Ebrahimi 2: a 2153*22dc650dSSadaf Ebrahimi 3: NOT 2154*22dc650dSSadaf Ebrahimi 4: ccc 2155*22dc650dSSadaf Ebrahimi baNOTccd 2156*22dc650dSSadaf Ebrahimi 0: baNOTcc 2157*22dc650dSSadaf Ebrahimi 1: b 2158*22dc650dSSadaf Ebrahimi 2: a 2159*22dc650dSSadaf Ebrahimi 3: NO 2160*22dc650dSSadaf Ebrahimi 4: Tcc 2161*22dc650dSSadaf Ebrahimi bacccd 2162*22dc650dSSadaf Ebrahimi 0: baccc 2163*22dc650dSSadaf Ebrahimi 1: b 2164*22dc650dSSadaf Ebrahimi 2: a 2165*22dc650dSSadaf Ebrahimi 3: 2166*22dc650dSSadaf Ebrahimi 4: ccc 2167*22dc650dSSadaf Ebrahimi\= Expect no match 2168*22dc650dSSadaf Ebrahimi anything 2169*22dc650dSSadaf EbrahimiNo match 2170*22dc650dSSadaf Ebrahimi b\bc 2171*22dc650dSSadaf EbrahimiNo match 2172*22dc650dSSadaf Ebrahimi baccd 2173*22dc650dSSadaf EbrahimiNo match 2174*22dc650dSSadaf Ebrahimi 2175*22dc650dSSadaf Ebrahimi/[^a]/ 2176*22dc650dSSadaf Ebrahimi Abc 2177*22dc650dSSadaf Ebrahimi 0: A 2178*22dc650dSSadaf Ebrahimi 2179*22dc650dSSadaf Ebrahimi/[^a]/i 2180*22dc650dSSadaf Ebrahimi Abc 2181*22dc650dSSadaf Ebrahimi 0: b 2182*22dc650dSSadaf Ebrahimi 2183*22dc650dSSadaf Ebrahimi/[^a]+/ 2184*22dc650dSSadaf Ebrahimi AAAaAbc 2185*22dc650dSSadaf Ebrahimi 0: AAA 2186*22dc650dSSadaf Ebrahimi 2187*22dc650dSSadaf Ebrahimi/[^a]+/i 2188*22dc650dSSadaf Ebrahimi AAAaAbc 2189*22dc650dSSadaf Ebrahimi 0: bc 2190*22dc650dSSadaf Ebrahimi 2191*22dc650dSSadaf Ebrahimi/[^a]+/ 2192*22dc650dSSadaf Ebrahimi bbb\nccc 2193*22dc650dSSadaf Ebrahimi 0: bbb\x0accc 2194*22dc650dSSadaf Ebrahimi 2195*22dc650dSSadaf Ebrahimi/[^k]$/ 2196*22dc650dSSadaf Ebrahimi abc 2197*22dc650dSSadaf Ebrahimi 0: c 2198*22dc650dSSadaf Ebrahimi\= Expect no match 2199*22dc650dSSadaf Ebrahimi abk 2200*22dc650dSSadaf EbrahimiNo match 2201*22dc650dSSadaf Ebrahimi 2202*22dc650dSSadaf Ebrahimi/[^k]{2,3}$/ 2203*22dc650dSSadaf Ebrahimi abc 2204*22dc650dSSadaf Ebrahimi 0: abc 2205*22dc650dSSadaf Ebrahimi kbc 2206*22dc650dSSadaf Ebrahimi 0: bc 2207*22dc650dSSadaf Ebrahimi kabc 2208*22dc650dSSadaf Ebrahimi 0: abc 2209*22dc650dSSadaf Ebrahimi\= Expect no match 2210*22dc650dSSadaf Ebrahimi abk 2211*22dc650dSSadaf EbrahimiNo match 2212*22dc650dSSadaf Ebrahimi akb 2213*22dc650dSSadaf EbrahimiNo match 2214*22dc650dSSadaf Ebrahimi akk 2215*22dc650dSSadaf EbrahimiNo match 2216*22dc650dSSadaf Ebrahimi 2217*22dc650dSSadaf Ebrahimi/^\d{8,}\@.+[^k]$/ 2218*22dc650dSSadaf Ebrahimi 12345678\@a.b.c.d 2219*22dc650dSSadaf Ebrahimi 0: [email protected] 2220*22dc650dSSadaf Ebrahimi 123456789\@x.y.z 2221*22dc650dSSadaf Ebrahimi 0: [email protected] 2222*22dc650dSSadaf Ebrahimi\= Expect no match 2223*22dc650dSSadaf Ebrahimi 12345678\@x.y.uk 2224*22dc650dSSadaf EbrahimiNo match 2225*22dc650dSSadaf Ebrahimi 1234567\@a.b.c.d 2226*22dc650dSSadaf EbrahimiNo match 2227*22dc650dSSadaf Ebrahimi 2228*22dc650dSSadaf Ebrahimi/(a)\1{8,}/ 2229*22dc650dSSadaf Ebrahimi aaaaaaaaa 2230*22dc650dSSadaf Ebrahimi 0: aaaaaaaaa 2231*22dc650dSSadaf Ebrahimi 1: a 2232*22dc650dSSadaf Ebrahimi aaaaaaaaaa 2233*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaa 2234*22dc650dSSadaf Ebrahimi 1: a 2235*22dc650dSSadaf Ebrahimi\= Expect no match 2236*22dc650dSSadaf Ebrahimi aaaaaaa 2237*22dc650dSSadaf EbrahimiNo match 2238*22dc650dSSadaf Ebrahimi 2239*22dc650dSSadaf Ebrahimi/[^a]/ 2240*22dc650dSSadaf Ebrahimi aaaabcd 2241*22dc650dSSadaf Ebrahimi 0: b 2242*22dc650dSSadaf Ebrahimi aaAabcd 2243*22dc650dSSadaf Ebrahimi 0: A 2244*22dc650dSSadaf Ebrahimi 2245*22dc650dSSadaf Ebrahimi/[^a]/i 2246*22dc650dSSadaf Ebrahimi aaaabcd 2247*22dc650dSSadaf Ebrahimi 0: b 2248*22dc650dSSadaf Ebrahimi aaAabcd 2249*22dc650dSSadaf Ebrahimi 0: b 2250*22dc650dSSadaf Ebrahimi 2251*22dc650dSSadaf Ebrahimi/[^az]/ 2252*22dc650dSSadaf Ebrahimi aaaabcd 2253*22dc650dSSadaf Ebrahimi 0: b 2254*22dc650dSSadaf Ebrahimi aaAabcd 2255*22dc650dSSadaf Ebrahimi 0: A 2256*22dc650dSSadaf Ebrahimi 2257*22dc650dSSadaf Ebrahimi/[^az]/i 2258*22dc650dSSadaf Ebrahimi aaaabcd 2259*22dc650dSSadaf Ebrahimi 0: b 2260*22dc650dSSadaf Ebrahimi aaAabcd 2261*22dc650dSSadaf Ebrahimi 0: b 2262*22dc650dSSadaf Ebrahimi 2263*22dc650dSSadaf Ebrahimi/\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/ 2264*22dc650dSSadaf Ebrahimi \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 2265*22dc650dSSadaf Ebrahimi 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff 2266*22dc650dSSadaf Ebrahimi 2267*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,6}?LL/ 2268*22dc650dSSadaf Ebrahimi xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 2269*22dc650dSSadaf Ebrahimi 0: PSTAIREISLL 2270*22dc650dSSadaf Ebrahimi 2271*22dc650dSSadaf Ebrahimi/P[^*]TAIRE[^*]{1,}?LL/ 2272*22dc650dSSadaf Ebrahimi xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 2273*22dc650dSSadaf Ebrahimi 0: PSTAIREISLL 2274*22dc650dSSadaf Ebrahimi 2275*22dc650dSSadaf Ebrahimi/(\.\d\d[1-9]?)\d+/ 2276*22dc650dSSadaf Ebrahimi 1.230003938 2277*22dc650dSSadaf Ebrahimi 0: .230003938 2278*22dc650dSSadaf Ebrahimi 1: .23 2279*22dc650dSSadaf Ebrahimi 1.875000282 2280*22dc650dSSadaf Ebrahimi 0: .875000282 2281*22dc650dSSadaf Ebrahimi 1: .875 2282*22dc650dSSadaf Ebrahimi 1.235 2283*22dc650dSSadaf Ebrahimi 0: .235 2284*22dc650dSSadaf Ebrahimi 1: .23 2285*22dc650dSSadaf Ebrahimi 2286*22dc650dSSadaf Ebrahimi/(\.\d\d((?=0)|\d(?=\d)))/ 2287*22dc650dSSadaf Ebrahimi 1.230003938 2288*22dc650dSSadaf Ebrahimi 0: .23 2289*22dc650dSSadaf Ebrahimi 1: .23 2290*22dc650dSSadaf Ebrahimi 2: 2291*22dc650dSSadaf Ebrahimi 1.875000282 2292*22dc650dSSadaf Ebrahimi 0: .875 2293*22dc650dSSadaf Ebrahimi 1: .875 2294*22dc650dSSadaf Ebrahimi 2: 5 2295*22dc650dSSadaf Ebrahimi\= Expect no match 2296*22dc650dSSadaf Ebrahimi 1.235 2297*22dc650dSSadaf EbrahimiNo match 2298*22dc650dSSadaf Ebrahimi 2299*22dc650dSSadaf Ebrahimi/a(?)b/ 2300*22dc650dSSadaf Ebrahimi ab 2301*22dc650dSSadaf Ebrahimi 0: ab 2302*22dc650dSSadaf Ebrahimi 2303*22dc650dSSadaf Ebrahimi/\b(foo)\s+(\w+)/i 2304*22dc650dSSadaf Ebrahimi Food is on the foo table 2305*22dc650dSSadaf Ebrahimi 0: foo table 2306*22dc650dSSadaf Ebrahimi 1: foo 2307*22dc650dSSadaf Ebrahimi 2: table 2308*22dc650dSSadaf Ebrahimi 2309*22dc650dSSadaf Ebrahimi/foo(.*)bar/ 2310*22dc650dSSadaf Ebrahimi The food is under the bar in the barn. 2311*22dc650dSSadaf Ebrahimi 0: food is under the bar in the bar 2312*22dc650dSSadaf Ebrahimi 1: d is under the bar in the 2313*22dc650dSSadaf Ebrahimi 2314*22dc650dSSadaf Ebrahimi/foo(.*?)bar/ 2315*22dc650dSSadaf Ebrahimi The food is under the bar in the barn. 2316*22dc650dSSadaf Ebrahimi 0: food is under the bar 2317*22dc650dSSadaf Ebrahimi 1: d is under the 2318*22dc650dSSadaf Ebrahimi 2319*22dc650dSSadaf Ebrahimi/(.*)(\d*)/ 2320*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2321*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2322*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 53147 2323*22dc650dSSadaf Ebrahimi 2: 2324*22dc650dSSadaf Ebrahimi 2325*22dc650dSSadaf Ebrahimi/(.*)(\d+)/ 2326*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2327*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2328*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 5314 2329*22dc650dSSadaf Ebrahimi 2: 7 2330*22dc650dSSadaf Ebrahimi 2331*22dc650dSSadaf Ebrahimi/(.*?)(\d*)/ 2332*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2333*22dc650dSSadaf Ebrahimi 0: 2334*22dc650dSSadaf Ebrahimi 1: 2335*22dc650dSSadaf Ebrahimi 2: 2336*22dc650dSSadaf Ebrahimi 2337*22dc650dSSadaf Ebrahimi/(.*?)(\d+)/ 2338*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2339*22dc650dSSadaf Ebrahimi 0: I have 2 2340*22dc650dSSadaf Ebrahimi 1: I have 2341*22dc650dSSadaf Ebrahimi 2: 2 2342*22dc650dSSadaf Ebrahimi 2343*22dc650dSSadaf Ebrahimi/(.*)(\d+)$/ 2344*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2345*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2346*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 5314 2347*22dc650dSSadaf Ebrahimi 2: 7 2348*22dc650dSSadaf Ebrahimi 2349*22dc650dSSadaf Ebrahimi/(.*?)(\d+)$/ 2350*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2351*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2352*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 2353*22dc650dSSadaf Ebrahimi 2: 53147 2354*22dc650dSSadaf Ebrahimi 2355*22dc650dSSadaf Ebrahimi/(.*)\b(\d+)$/ 2356*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2357*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2358*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 2359*22dc650dSSadaf Ebrahimi 2: 53147 2360*22dc650dSSadaf Ebrahimi 2361*22dc650dSSadaf Ebrahimi/(.*\D)(\d+)$/ 2362*22dc650dSSadaf Ebrahimi I have 2 numbers: 53147 2363*22dc650dSSadaf Ebrahimi 0: I have 2 numbers: 53147 2364*22dc650dSSadaf Ebrahimi 1: I have 2 numbers: 2365*22dc650dSSadaf Ebrahimi 2: 53147 2366*22dc650dSSadaf Ebrahimi 2367*22dc650dSSadaf Ebrahimi/^\D*(?!123)/ 2368*22dc650dSSadaf Ebrahimi ABC123 2369*22dc650dSSadaf Ebrahimi 0: AB 2370*22dc650dSSadaf Ebrahimi 2371*22dc650dSSadaf Ebrahimi/^(\D*)(?=\d)(?!123)/ 2372*22dc650dSSadaf Ebrahimi ABC445 2373*22dc650dSSadaf Ebrahimi 0: ABC 2374*22dc650dSSadaf Ebrahimi 1: ABC 2375*22dc650dSSadaf Ebrahimi\= Expect no match 2376*22dc650dSSadaf Ebrahimi ABC123 2377*22dc650dSSadaf EbrahimiNo match 2378*22dc650dSSadaf Ebrahimi 2379*22dc650dSSadaf Ebrahimi/^[W-]46]/ 2380*22dc650dSSadaf Ebrahimi W46]789 2381*22dc650dSSadaf Ebrahimi 0: W46] 2382*22dc650dSSadaf Ebrahimi -46]789 2383*22dc650dSSadaf Ebrahimi 0: -46] 2384*22dc650dSSadaf Ebrahimi\= Expect no match 2385*22dc650dSSadaf Ebrahimi Wall 2386*22dc650dSSadaf EbrahimiNo match 2387*22dc650dSSadaf Ebrahimi Zebra 2388*22dc650dSSadaf EbrahimiNo match 2389*22dc650dSSadaf Ebrahimi 42 2390*22dc650dSSadaf EbrahimiNo match 2391*22dc650dSSadaf Ebrahimi [abcd] 2392*22dc650dSSadaf EbrahimiNo match 2393*22dc650dSSadaf Ebrahimi ]abcd[ 2394*22dc650dSSadaf EbrahimiNo match 2395*22dc650dSSadaf Ebrahimi 2396*22dc650dSSadaf Ebrahimi/^[W-\]46]/ 2397*22dc650dSSadaf Ebrahimi W46]789 2398*22dc650dSSadaf Ebrahimi 0: W 2399*22dc650dSSadaf Ebrahimi Wall 2400*22dc650dSSadaf Ebrahimi 0: W 2401*22dc650dSSadaf Ebrahimi Zebra 2402*22dc650dSSadaf Ebrahimi 0: Z 2403*22dc650dSSadaf Ebrahimi Xylophone 2404*22dc650dSSadaf Ebrahimi 0: X 2405*22dc650dSSadaf Ebrahimi 42 2406*22dc650dSSadaf Ebrahimi 0: 4 2407*22dc650dSSadaf Ebrahimi [abcd] 2408*22dc650dSSadaf Ebrahimi 0: [ 2409*22dc650dSSadaf Ebrahimi ]abcd[ 2410*22dc650dSSadaf Ebrahimi 0: ] 2411*22dc650dSSadaf Ebrahimi \\backslash 2412*22dc650dSSadaf Ebrahimi 0: \ 2413*22dc650dSSadaf Ebrahimi\= Expect no match 2414*22dc650dSSadaf Ebrahimi -46]789 2415*22dc650dSSadaf EbrahimiNo match 2416*22dc650dSSadaf Ebrahimi well 2417*22dc650dSSadaf EbrahimiNo match 2418*22dc650dSSadaf Ebrahimi 2419*22dc650dSSadaf Ebrahimi/\d\d\/\d\d\/\d\d\d\d/ 2420*22dc650dSSadaf Ebrahimi 01/01/2000 2421*22dc650dSSadaf Ebrahimi 0: 01/01/2000 2422*22dc650dSSadaf Ebrahimi 2423*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,10}otherword/ 2424*22dc650dSSadaf Ebrahimi word cat dog elephant mussel cow horse canary baboon snake shark otherword 2425*22dc650dSSadaf Ebrahimi 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword 2426*22dc650dSSadaf Ebrahimi\= Expect no match 2427*22dc650dSSadaf Ebrahimi word cat dog elephant mussel cow horse canary baboon snake shark 2428*22dc650dSSadaf EbrahimiNo match 2429*22dc650dSSadaf Ebrahimi 2430*22dc650dSSadaf Ebrahimi/word (?:[a-zA-Z0-9]+ ){0,300}otherword/ 2431*22dc650dSSadaf Ebrahimi\= Expect no match 2432*22dc650dSSadaf Ebrahimi 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 2433*22dc650dSSadaf EbrahimiNo match 2434*22dc650dSSadaf Ebrahimi 2435*22dc650dSSadaf Ebrahimi/^(a){0,0}/ 2436*22dc650dSSadaf Ebrahimi bcd 2437*22dc650dSSadaf Ebrahimi 0: 2438*22dc650dSSadaf Ebrahimi abc 2439*22dc650dSSadaf Ebrahimi 0: 2440*22dc650dSSadaf Ebrahimi aab 2441*22dc650dSSadaf Ebrahimi 0: 2442*22dc650dSSadaf Ebrahimi 2443*22dc650dSSadaf Ebrahimi/^(a){0,1}/ 2444*22dc650dSSadaf Ebrahimi bcd 2445*22dc650dSSadaf Ebrahimi 0: 2446*22dc650dSSadaf Ebrahimi abc 2447*22dc650dSSadaf Ebrahimi 0: a 2448*22dc650dSSadaf Ebrahimi 1: a 2449*22dc650dSSadaf Ebrahimi aab 2450*22dc650dSSadaf Ebrahimi 0: a 2451*22dc650dSSadaf Ebrahimi 1: a 2452*22dc650dSSadaf Ebrahimi 2453*22dc650dSSadaf Ebrahimi/^(a){0,2}/ 2454*22dc650dSSadaf Ebrahimi bcd 2455*22dc650dSSadaf Ebrahimi 0: 2456*22dc650dSSadaf Ebrahimi abc 2457*22dc650dSSadaf Ebrahimi 0: a 2458*22dc650dSSadaf Ebrahimi 1: a 2459*22dc650dSSadaf Ebrahimi aab 2460*22dc650dSSadaf Ebrahimi 0: aa 2461*22dc650dSSadaf Ebrahimi 1: a 2462*22dc650dSSadaf Ebrahimi 2463*22dc650dSSadaf Ebrahimi/^(a){0,3}/ 2464*22dc650dSSadaf Ebrahimi bcd 2465*22dc650dSSadaf Ebrahimi 0: 2466*22dc650dSSadaf Ebrahimi abc 2467*22dc650dSSadaf Ebrahimi 0: a 2468*22dc650dSSadaf Ebrahimi 1: a 2469*22dc650dSSadaf Ebrahimi aab 2470*22dc650dSSadaf Ebrahimi 0: aa 2471*22dc650dSSadaf Ebrahimi 1: a 2472*22dc650dSSadaf Ebrahimi aaa 2473*22dc650dSSadaf Ebrahimi 0: aaa 2474*22dc650dSSadaf Ebrahimi 1: a 2475*22dc650dSSadaf Ebrahimi 2476*22dc650dSSadaf Ebrahimi/^(a){0,}/ 2477*22dc650dSSadaf Ebrahimi bcd 2478*22dc650dSSadaf Ebrahimi 0: 2479*22dc650dSSadaf Ebrahimi abc 2480*22dc650dSSadaf Ebrahimi 0: a 2481*22dc650dSSadaf Ebrahimi 1: a 2482*22dc650dSSadaf Ebrahimi aab 2483*22dc650dSSadaf Ebrahimi 0: aa 2484*22dc650dSSadaf Ebrahimi 1: a 2485*22dc650dSSadaf Ebrahimi aaa 2486*22dc650dSSadaf Ebrahimi 0: aaa 2487*22dc650dSSadaf Ebrahimi 1: a 2488*22dc650dSSadaf Ebrahimi aaaaaaaa 2489*22dc650dSSadaf Ebrahimi 0: aaaaaaaa 2490*22dc650dSSadaf Ebrahimi 1: a 2491*22dc650dSSadaf Ebrahimi 2492*22dc650dSSadaf Ebrahimi/^(a){1,1}/ 2493*22dc650dSSadaf Ebrahimi abc 2494*22dc650dSSadaf Ebrahimi 0: a 2495*22dc650dSSadaf Ebrahimi 1: a 2496*22dc650dSSadaf Ebrahimi aab 2497*22dc650dSSadaf Ebrahimi 0: a 2498*22dc650dSSadaf Ebrahimi 1: a 2499*22dc650dSSadaf Ebrahimi\= Expect no match 2500*22dc650dSSadaf Ebrahimi bcd 2501*22dc650dSSadaf EbrahimiNo match 2502*22dc650dSSadaf Ebrahimi 2503*22dc650dSSadaf Ebrahimi/^(a){1,2}/ 2504*22dc650dSSadaf Ebrahimi abc 2505*22dc650dSSadaf Ebrahimi 0: a 2506*22dc650dSSadaf Ebrahimi 1: a 2507*22dc650dSSadaf Ebrahimi aab 2508*22dc650dSSadaf Ebrahimi 0: aa 2509*22dc650dSSadaf Ebrahimi 1: a 2510*22dc650dSSadaf Ebrahimi\= Expect no match 2511*22dc650dSSadaf Ebrahimi bcd 2512*22dc650dSSadaf EbrahimiNo match 2513*22dc650dSSadaf Ebrahimi 2514*22dc650dSSadaf Ebrahimi/^(a){1,3}/ 2515*22dc650dSSadaf Ebrahimi abc 2516*22dc650dSSadaf Ebrahimi 0: a 2517*22dc650dSSadaf Ebrahimi 1: a 2518*22dc650dSSadaf Ebrahimi aab 2519*22dc650dSSadaf Ebrahimi 0: aa 2520*22dc650dSSadaf Ebrahimi 1: a 2521*22dc650dSSadaf Ebrahimi aaa 2522*22dc650dSSadaf Ebrahimi 0: aaa 2523*22dc650dSSadaf Ebrahimi 1: a 2524*22dc650dSSadaf Ebrahimi\= Expect no match 2525*22dc650dSSadaf Ebrahimi bcd 2526*22dc650dSSadaf EbrahimiNo match 2527*22dc650dSSadaf Ebrahimi 2528*22dc650dSSadaf Ebrahimi/^(a){1,}/ 2529*22dc650dSSadaf Ebrahimi abc 2530*22dc650dSSadaf Ebrahimi 0: a 2531*22dc650dSSadaf Ebrahimi 1: a 2532*22dc650dSSadaf Ebrahimi aab 2533*22dc650dSSadaf Ebrahimi 0: aa 2534*22dc650dSSadaf Ebrahimi 1: a 2535*22dc650dSSadaf Ebrahimi aaa 2536*22dc650dSSadaf Ebrahimi 0: aaa 2537*22dc650dSSadaf Ebrahimi 1: a 2538*22dc650dSSadaf Ebrahimi aaaaaaaa 2539*22dc650dSSadaf Ebrahimi 0: aaaaaaaa 2540*22dc650dSSadaf Ebrahimi 1: a 2541*22dc650dSSadaf Ebrahimi\= Expect no match 2542*22dc650dSSadaf Ebrahimi bcd 2543*22dc650dSSadaf EbrahimiNo match 2544*22dc650dSSadaf Ebrahimi 2545*22dc650dSSadaf Ebrahimi/.*\.gif/ 2546*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2547*22dc650dSSadaf Ebrahimi 0: bib.gif 2548*22dc650dSSadaf Ebrahimi 2549*22dc650dSSadaf Ebrahimi/.{0,}\.gif/ 2550*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2551*22dc650dSSadaf Ebrahimi 0: bib.gif 2552*22dc650dSSadaf Ebrahimi 2553*22dc650dSSadaf Ebrahimi/.*\.gif/m 2554*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2555*22dc650dSSadaf Ebrahimi 0: bib.gif 2556*22dc650dSSadaf Ebrahimi 2557*22dc650dSSadaf Ebrahimi/.*\.gif/s 2558*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2559*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif 2560*22dc650dSSadaf Ebrahimi 2561*22dc650dSSadaf Ebrahimi/.*\.gif/ms 2562*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2563*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif 2564*22dc650dSSadaf Ebrahimi 2565*22dc650dSSadaf Ebrahimi/.*$/ 2566*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2567*22dc650dSSadaf Ebrahimi 0: no 2568*22dc650dSSadaf Ebrahimi 2569*22dc650dSSadaf Ebrahimi/.*$/m 2570*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2571*22dc650dSSadaf Ebrahimi 0: borfle 2572*22dc650dSSadaf Ebrahimi 2573*22dc650dSSadaf Ebrahimi/.*$/s 2574*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2575*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano 2576*22dc650dSSadaf Ebrahimi 2577*22dc650dSSadaf Ebrahimi/.*$/ms 2578*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno 2579*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano 2580*22dc650dSSadaf Ebrahimi 2581*22dc650dSSadaf Ebrahimi/.*$/ 2582*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno\n 2583*22dc650dSSadaf Ebrahimi 0: no 2584*22dc650dSSadaf Ebrahimi 2585*22dc650dSSadaf Ebrahimi/.*$/m 2586*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno\n 2587*22dc650dSSadaf Ebrahimi 0: borfle 2588*22dc650dSSadaf Ebrahimi 2589*22dc650dSSadaf Ebrahimi/.*$/s 2590*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno\n 2591*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano\x0a 2592*22dc650dSSadaf Ebrahimi 2593*22dc650dSSadaf Ebrahimi/.*$/ms 2594*22dc650dSSadaf Ebrahimi borfle\nbib.gif\nno\n 2595*22dc650dSSadaf Ebrahimi 0: borfle\x0abib.gif\x0ano\x0a 2596*22dc650dSSadaf Ebrahimi 2597*22dc650dSSadaf Ebrahimi/(.*X|^B)/ 2598*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2599*22dc650dSSadaf Ebrahimi 0: 1234X 2600*22dc650dSSadaf Ebrahimi 1: 1234X 2601*22dc650dSSadaf Ebrahimi BarFoo 2602*22dc650dSSadaf Ebrahimi 0: B 2603*22dc650dSSadaf Ebrahimi 1: B 2604*22dc650dSSadaf Ebrahimi\= Expect no match 2605*22dc650dSSadaf Ebrahimi abcde\nBar 2606*22dc650dSSadaf EbrahimiNo match 2607*22dc650dSSadaf Ebrahimi 2608*22dc650dSSadaf Ebrahimi/(.*X|^B)/m 2609*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2610*22dc650dSSadaf Ebrahimi 0: 1234X 2611*22dc650dSSadaf Ebrahimi 1: 1234X 2612*22dc650dSSadaf Ebrahimi BarFoo 2613*22dc650dSSadaf Ebrahimi 0: B 2614*22dc650dSSadaf Ebrahimi 1: B 2615*22dc650dSSadaf Ebrahimi abcde\nBar 2616*22dc650dSSadaf Ebrahimi 0: B 2617*22dc650dSSadaf Ebrahimi 1: B 2618*22dc650dSSadaf Ebrahimi 2619*22dc650dSSadaf Ebrahimi/(.*X|^B)/s 2620*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2621*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X 2622*22dc650dSSadaf Ebrahimi 1: abcde\x0a1234X 2623*22dc650dSSadaf Ebrahimi BarFoo 2624*22dc650dSSadaf Ebrahimi 0: B 2625*22dc650dSSadaf Ebrahimi 1: B 2626*22dc650dSSadaf Ebrahimi\= Expect no match 2627*22dc650dSSadaf Ebrahimi abcde\nBar 2628*22dc650dSSadaf EbrahimiNo match 2629*22dc650dSSadaf Ebrahimi 2630*22dc650dSSadaf Ebrahimi/(.*X|^B)/ms 2631*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2632*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X 2633*22dc650dSSadaf Ebrahimi 1: abcde\x0a1234X 2634*22dc650dSSadaf Ebrahimi BarFoo 2635*22dc650dSSadaf Ebrahimi 0: B 2636*22dc650dSSadaf Ebrahimi 1: B 2637*22dc650dSSadaf Ebrahimi abcde\nBar 2638*22dc650dSSadaf Ebrahimi 0: B 2639*22dc650dSSadaf Ebrahimi 1: B 2640*22dc650dSSadaf Ebrahimi 2641*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/ 2642*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2643*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X 2644*22dc650dSSadaf Ebrahimi 1: abcde\x0a1234X 2645*22dc650dSSadaf Ebrahimi BarFoo 2646*22dc650dSSadaf Ebrahimi 0: B 2647*22dc650dSSadaf Ebrahimi 1: B 2648*22dc650dSSadaf Ebrahimi\= Expect no match 2649*22dc650dSSadaf Ebrahimi abcde\nBar 2650*22dc650dSSadaf EbrahimiNo match 2651*22dc650dSSadaf Ebrahimi 2652*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/ 2653*22dc650dSSadaf Ebrahimi abcde\n1234Xyz 2654*22dc650dSSadaf Ebrahimi 0: abcde\x0a1234X 2655*22dc650dSSadaf Ebrahimi BarFoo 2656*22dc650dSSadaf Ebrahimi 0: B 2657*22dc650dSSadaf Ebrahimi\= Expect no match 2658*22dc650dSSadaf Ebrahimi abcde\nBar 2659*22dc650dSSadaf EbrahimiNo match 2660*22dc650dSSadaf Ebrahimi 2661*22dc650dSSadaf Ebrahimi/^.*B/ 2662*22dc650dSSadaf Ebrahimi\= Expect no match 2663*22dc650dSSadaf Ebrahimi abc\nB 2664*22dc650dSSadaf EbrahimiNo match 2665*22dc650dSSadaf Ebrahimi 2666*22dc650dSSadaf Ebrahimi/(?s)^.*B/ 2667*22dc650dSSadaf Ebrahimi abc\nB 2668*22dc650dSSadaf Ebrahimi 0: abc\x0aB 2669*22dc650dSSadaf Ebrahimi 2670*22dc650dSSadaf Ebrahimi/(?m)^.*B/ 2671*22dc650dSSadaf Ebrahimi abc\nB 2672*22dc650dSSadaf Ebrahimi 0: B 2673*22dc650dSSadaf Ebrahimi 2674*22dc650dSSadaf Ebrahimi/(?ms)^.*B/ 2675*22dc650dSSadaf Ebrahimi abc\nB 2676*22dc650dSSadaf Ebrahimi 0: abc\x0aB 2677*22dc650dSSadaf Ebrahimi 2678*22dc650dSSadaf Ebrahimi/(?ms)^B/ 2679*22dc650dSSadaf Ebrahimi abc\nB 2680*22dc650dSSadaf Ebrahimi 0: B 2681*22dc650dSSadaf Ebrahimi 2682*22dc650dSSadaf Ebrahimi/(?s)B$/ 2683*22dc650dSSadaf Ebrahimi B\n 2684*22dc650dSSadaf Ebrahimi 0: B 2685*22dc650dSSadaf Ebrahimi 2686*22dc650dSSadaf Ebrahimi/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ 2687*22dc650dSSadaf Ebrahimi 123456654321 2688*22dc650dSSadaf Ebrahimi 0: 123456654321 2689*22dc650dSSadaf Ebrahimi 2690*22dc650dSSadaf Ebrahimi/^\d\d\d\d\d\d\d\d\d\d\d\d/ 2691*22dc650dSSadaf Ebrahimi 123456654321 2692*22dc650dSSadaf Ebrahimi 0: 123456654321 2693*22dc650dSSadaf Ebrahimi 2694*22dc650dSSadaf Ebrahimi/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ 2695*22dc650dSSadaf Ebrahimi 123456654321 2696*22dc650dSSadaf Ebrahimi 0: 123456654321 2697*22dc650dSSadaf Ebrahimi 2698*22dc650dSSadaf Ebrahimi/^[abc]{12}/ 2699*22dc650dSSadaf Ebrahimi abcabcabcabc 2700*22dc650dSSadaf Ebrahimi 0: abcabcabcabc 2701*22dc650dSSadaf Ebrahimi 2702*22dc650dSSadaf Ebrahimi/^[a-c]{12}/ 2703*22dc650dSSadaf Ebrahimi abcabcabcabc 2704*22dc650dSSadaf Ebrahimi 0: abcabcabcabc 2705*22dc650dSSadaf Ebrahimi 2706*22dc650dSSadaf Ebrahimi/^(a|b|c){12}/ 2707*22dc650dSSadaf Ebrahimi abcabcabcabc 2708*22dc650dSSadaf Ebrahimi 0: abcabcabcabc 2709*22dc650dSSadaf Ebrahimi 1: c 2710*22dc650dSSadaf Ebrahimi 2711*22dc650dSSadaf Ebrahimi/^[abcdefghijklmnopqrstuvwxy0123456789]/ 2712*22dc650dSSadaf Ebrahimi n 2713*22dc650dSSadaf Ebrahimi 0: n 2714*22dc650dSSadaf Ebrahimi\= Expect no match 2715*22dc650dSSadaf Ebrahimi z 2716*22dc650dSSadaf EbrahimiNo match 2717*22dc650dSSadaf Ebrahimi 2718*22dc650dSSadaf Ebrahimi/abcde{0,0}/ 2719*22dc650dSSadaf Ebrahimi abcd 2720*22dc650dSSadaf Ebrahimi 0: abcd 2721*22dc650dSSadaf Ebrahimi\= Expect no match 2722*22dc650dSSadaf Ebrahimi abce 2723*22dc650dSSadaf EbrahimiNo match 2724*22dc650dSSadaf Ebrahimi 2725*22dc650dSSadaf Ebrahimi/ab[cd]{0,0}e/ 2726*22dc650dSSadaf Ebrahimi abe 2727*22dc650dSSadaf Ebrahimi 0: abe 2728*22dc650dSSadaf Ebrahimi\= Expect no match 2729*22dc650dSSadaf Ebrahimi abcde 2730*22dc650dSSadaf EbrahimiNo match 2731*22dc650dSSadaf Ebrahimi 2732*22dc650dSSadaf Ebrahimi/ab(c){0,0}d/ 2733*22dc650dSSadaf Ebrahimi abd 2734*22dc650dSSadaf Ebrahimi 0: abd 2735*22dc650dSSadaf Ebrahimi\= Expect no match 2736*22dc650dSSadaf Ebrahimi abcd 2737*22dc650dSSadaf EbrahimiNo match 2738*22dc650dSSadaf Ebrahimi 2739*22dc650dSSadaf Ebrahimi/a(b*)/ 2740*22dc650dSSadaf Ebrahimi a 2741*22dc650dSSadaf Ebrahimi 0: a 2742*22dc650dSSadaf Ebrahimi 1: 2743*22dc650dSSadaf Ebrahimi ab 2744*22dc650dSSadaf Ebrahimi 0: ab 2745*22dc650dSSadaf Ebrahimi 1: b 2746*22dc650dSSadaf Ebrahimi abbbb 2747*22dc650dSSadaf Ebrahimi 0: abbbb 2748*22dc650dSSadaf Ebrahimi 1: bbbb 2749*22dc650dSSadaf Ebrahimi\= Expect no match 2750*22dc650dSSadaf Ebrahimi bbbbb 2751*22dc650dSSadaf EbrahimiNo match 2752*22dc650dSSadaf Ebrahimi 2753*22dc650dSSadaf Ebrahimi/ab\d{0}e/ 2754*22dc650dSSadaf Ebrahimi abe 2755*22dc650dSSadaf Ebrahimi 0: abe 2756*22dc650dSSadaf Ebrahimi\= Expect no match 2757*22dc650dSSadaf Ebrahimi ab1e 2758*22dc650dSSadaf EbrahimiNo match 2759*22dc650dSSadaf Ebrahimi 2760*22dc650dSSadaf Ebrahimi/"([^\\"]+|\\.)*"/ 2761*22dc650dSSadaf Ebrahimi the \"quick\" brown fox 2762*22dc650dSSadaf Ebrahimi 0: "quick" 2763*22dc650dSSadaf Ebrahimi 1: quick 2764*22dc650dSSadaf Ebrahimi \"the \\\"quick\\\" brown fox\" 2765*22dc650dSSadaf Ebrahimi 0: "the \"quick\" brown fox" 2766*22dc650dSSadaf Ebrahimi 1: brown fox 2767*22dc650dSSadaf Ebrahimi 2768*22dc650dSSadaf Ebrahimi/.*?/g,aftertext 2769*22dc650dSSadaf Ebrahimi abc 2770*22dc650dSSadaf Ebrahimi 0: 2771*22dc650dSSadaf Ebrahimi 0+ abc 2772*22dc650dSSadaf Ebrahimi 0: a 2773*22dc650dSSadaf Ebrahimi 0+ bc 2774*22dc650dSSadaf Ebrahimi 0: 2775*22dc650dSSadaf Ebrahimi 0+ bc 2776*22dc650dSSadaf Ebrahimi 0: b 2777*22dc650dSSadaf Ebrahimi 0+ c 2778*22dc650dSSadaf Ebrahimi 0: 2779*22dc650dSSadaf Ebrahimi 0+ c 2780*22dc650dSSadaf Ebrahimi 0: c 2781*22dc650dSSadaf Ebrahimi 0+ 2782*22dc650dSSadaf Ebrahimi 0: 2783*22dc650dSSadaf Ebrahimi 0+ 2784*22dc650dSSadaf Ebrahimi 2785*22dc650dSSadaf Ebrahimi/\b/g,aftertext 2786*22dc650dSSadaf Ebrahimi abc 2787*22dc650dSSadaf Ebrahimi 0: 2788*22dc650dSSadaf Ebrahimi 0+ abc 2789*22dc650dSSadaf Ebrahimi 0: 2790*22dc650dSSadaf Ebrahimi 0+ 2791*22dc650dSSadaf Ebrahimi 2792*22dc650dSSadaf Ebrahimi/\b/g,aftertext 2793*22dc650dSSadaf Ebrahimi abc 2794*22dc650dSSadaf Ebrahimi 0: 2795*22dc650dSSadaf Ebrahimi 0+ abc 2796*22dc650dSSadaf Ebrahimi 0: 2797*22dc650dSSadaf Ebrahimi 0+ 2798*22dc650dSSadaf Ebrahimi 2799*22dc650dSSadaf Ebrahimi//g 2800*22dc650dSSadaf Ebrahimi abc 2801*22dc650dSSadaf Ebrahimi 0: 2802*22dc650dSSadaf Ebrahimi 0: 2803*22dc650dSSadaf Ebrahimi 0: 2804*22dc650dSSadaf Ebrahimi 0: 2805*22dc650dSSadaf Ebrahimi 2806*22dc650dSSadaf Ebrahimi/<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 2807*22dc650dSSadaf Ebrahimi <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> 2808*22dc650dSSadaf Ebrahimi 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> 2809*22dc650dSSadaf Ebrahimi 1: BGCOLOR='#DBE9E9' 2810*22dc650dSSadaf Ebrahimi 2: align=left valign=top 2811*22dc650dSSadaf Ebrahimi 3: 43. 2812*22dc650dSSadaf Ebrahimi 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286) 2813*22dc650dSSadaf Ebrahimi 5: 2814*22dc650dSSadaf Ebrahimi 6: 2815*22dc650dSSadaf Ebrahimi 7: <unset> 2816*22dc650dSSadaf Ebrahimi 8: align=left valign=top 2817*22dc650dSSadaf Ebrahimi 9: Lega lstaff.com 2818*22dc650dSSadaf Ebrahimi10: align=left valign=top 2819*22dc650dSSadaf Ebrahimi11: CA - Statewide 2820*22dc650dSSadaf Ebrahimi 2821*22dc650dSSadaf Ebrahimi/a[^a]b/ 2822*22dc650dSSadaf Ebrahimi acb 2823*22dc650dSSadaf Ebrahimi 0: acb 2824*22dc650dSSadaf Ebrahimi a\nb 2825*22dc650dSSadaf Ebrahimi 0: a\x0ab 2826*22dc650dSSadaf Ebrahimi 2827*22dc650dSSadaf Ebrahimi/a.b/ 2828*22dc650dSSadaf Ebrahimi acb 2829*22dc650dSSadaf Ebrahimi 0: acb 2830*22dc650dSSadaf Ebrahimi\= Expect no match 2831*22dc650dSSadaf Ebrahimi a\nb 2832*22dc650dSSadaf EbrahimiNo match 2833*22dc650dSSadaf Ebrahimi 2834*22dc650dSSadaf Ebrahimi/a[^a]b/s 2835*22dc650dSSadaf Ebrahimi acb 2836*22dc650dSSadaf Ebrahimi 0: acb 2837*22dc650dSSadaf Ebrahimi a\nb 2838*22dc650dSSadaf Ebrahimi 0: a\x0ab 2839*22dc650dSSadaf Ebrahimi 2840*22dc650dSSadaf Ebrahimi/a.b/s 2841*22dc650dSSadaf Ebrahimi acb 2842*22dc650dSSadaf Ebrahimi 0: acb 2843*22dc650dSSadaf Ebrahimi a\nb 2844*22dc650dSSadaf Ebrahimi 0: a\x0ab 2845*22dc650dSSadaf Ebrahimi 2846*22dc650dSSadaf Ebrahimi/^(b+?|a){1,2}?c/ 2847*22dc650dSSadaf Ebrahimi bac 2848*22dc650dSSadaf Ebrahimi 0: bac 2849*22dc650dSSadaf Ebrahimi 1: a 2850*22dc650dSSadaf Ebrahimi bbac 2851*22dc650dSSadaf Ebrahimi 0: bbac 2852*22dc650dSSadaf Ebrahimi 1: a 2853*22dc650dSSadaf Ebrahimi bbbac 2854*22dc650dSSadaf Ebrahimi 0: bbbac 2855*22dc650dSSadaf Ebrahimi 1: a 2856*22dc650dSSadaf Ebrahimi bbbbac 2857*22dc650dSSadaf Ebrahimi 0: bbbbac 2858*22dc650dSSadaf Ebrahimi 1: a 2859*22dc650dSSadaf Ebrahimi bbbbbac 2860*22dc650dSSadaf Ebrahimi 0: bbbbbac 2861*22dc650dSSadaf Ebrahimi 1: a 2862*22dc650dSSadaf Ebrahimi 2863*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?c/ 2864*22dc650dSSadaf Ebrahimi bac 2865*22dc650dSSadaf Ebrahimi 0: bac 2866*22dc650dSSadaf Ebrahimi 1: a 2867*22dc650dSSadaf Ebrahimi bbac 2868*22dc650dSSadaf Ebrahimi 0: bbac 2869*22dc650dSSadaf Ebrahimi 1: a 2870*22dc650dSSadaf Ebrahimi bbbac 2871*22dc650dSSadaf Ebrahimi 0: bbbac 2872*22dc650dSSadaf Ebrahimi 1: a 2873*22dc650dSSadaf Ebrahimi bbbbac 2874*22dc650dSSadaf Ebrahimi 0: bbbbac 2875*22dc650dSSadaf Ebrahimi 1: a 2876*22dc650dSSadaf Ebrahimi bbbbbac 2877*22dc650dSSadaf Ebrahimi 0: bbbbbac 2878*22dc650dSSadaf Ebrahimi 1: a 2879*22dc650dSSadaf Ebrahimi 2880*22dc650dSSadaf Ebrahimi/(?!\A)x/m 2881*22dc650dSSadaf Ebrahimi a\bx\n 2882*22dc650dSSadaf Ebrahimi 0: x 2883*22dc650dSSadaf Ebrahimi a\nx\n 2884*22dc650dSSadaf Ebrahimi 0: x 2885*22dc650dSSadaf Ebrahimi\= Expect no match 2886*22dc650dSSadaf Ebrahimi x\nb\n 2887*22dc650dSSadaf EbrahimiNo match 2888*22dc650dSSadaf Ebrahimi 2889*22dc650dSSadaf Ebrahimi/(A|B)*?CD/ 2890*22dc650dSSadaf Ebrahimi CD 2891*22dc650dSSadaf Ebrahimi 0: CD 2892*22dc650dSSadaf Ebrahimi 2893*22dc650dSSadaf Ebrahimi/(A|B)*CD/ 2894*22dc650dSSadaf Ebrahimi CD 2895*22dc650dSSadaf Ebrahimi 0: CD 2896*22dc650dSSadaf Ebrahimi 2897*22dc650dSSadaf Ebrahimi/(AB)*?\1/ 2898*22dc650dSSadaf Ebrahimi ABABAB 2899*22dc650dSSadaf Ebrahimi 0: ABAB 2900*22dc650dSSadaf Ebrahimi 1: AB 2901*22dc650dSSadaf Ebrahimi 2902*22dc650dSSadaf Ebrahimi/(AB)*\1/ 2903*22dc650dSSadaf Ebrahimi ABABAB 2904*22dc650dSSadaf Ebrahimi 0: ABABAB 2905*22dc650dSSadaf Ebrahimi 1: AB 2906*22dc650dSSadaf Ebrahimi 2907*22dc650dSSadaf Ebrahimi/(?<!bar)foo/ 2908*22dc650dSSadaf Ebrahimi foo 2909*22dc650dSSadaf Ebrahimi 0: foo 2910*22dc650dSSadaf Ebrahimi catfood 2911*22dc650dSSadaf Ebrahimi 0: foo 2912*22dc650dSSadaf Ebrahimi arfootle 2913*22dc650dSSadaf Ebrahimi 0: foo 2914*22dc650dSSadaf Ebrahimi rfoosh 2915*22dc650dSSadaf Ebrahimi 0: foo 2916*22dc650dSSadaf Ebrahimi\= Expect no match 2917*22dc650dSSadaf Ebrahimi barfoo 2918*22dc650dSSadaf EbrahimiNo match 2919*22dc650dSSadaf Ebrahimi towbarfoo 2920*22dc650dSSadaf EbrahimiNo match 2921*22dc650dSSadaf Ebrahimi 2922*22dc650dSSadaf Ebrahimi/\w{3}(?<!bar)foo/ 2923*22dc650dSSadaf Ebrahimi catfood 2924*22dc650dSSadaf Ebrahimi 0: catfoo 2925*22dc650dSSadaf Ebrahimi\= Expect no match 2926*22dc650dSSadaf Ebrahimi foo 2927*22dc650dSSadaf EbrahimiNo match 2928*22dc650dSSadaf Ebrahimi barfoo 2929*22dc650dSSadaf EbrahimiNo match 2930*22dc650dSSadaf Ebrahimi towbarfoo 2931*22dc650dSSadaf EbrahimiNo match 2932*22dc650dSSadaf Ebrahimi 2933*22dc650dSSadaf Ebrahimi/(?<=(foo)a)bar/ 2934*22dc650dSSadaf Ebrahimi fooabar 2935*22dc650dSSadaf Ebrahimi 0: bar 2936*22dc650dSSadaf Ebrahimi 1: foo 2937*22dc650dSSadaf Ebrahimi\= Expect no match 2938*22dc650dSSadaf Ebrahimi bar 2939*22dc650dSSadaf EbrahimiNo match 2940*22dc650dSSadaf Ebrahimi foobbar 2941*22dc650dSSadaf EbrahimiNo match 2942*22dc650dSSadaf Ebrahimi 2943*22dc650dSSadaf Ebrahimi/\Aabc\z/m 2944*22dc650dSSadaf Ebrahimi abc 2945*22dc650dSSadaf Ebrahimi 0: abc 2946*22dc650dSSadaf Ebrahimi\= Expect no match 2947*22dc650dSSadaf Ebrahimi abc\n 2948*22dc650dSSadaf EbrahimiNo match 2949*22dc650dSSadaf Ebrahimi qqq\nabc 2950*22dc650dSSadaf EbrahimiNo match 2951*22dc650dSSadaf Ebrahimi abc\nzzz 2952*22dc650dSSadaf EbrahimiNo match 2953*22dc650dSSadaf Ebrahimi qqq\nabc\nzzz 2954*22dc650dSSadaf EbrahimiNo match 2955*22dc650dSSadaf Ebrahimi 2956*22dc650dSSadaf Ebrahimi/(?>.*\/)foo/ 2957*22dc650dSSadaf Ebrahimi /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo 2958*22dc650dSSadaf Ebrahimi 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo 2959*22dc650dSSadaf Ebrahimi\= Expect no match 2960*22dc650dSSadaf Ebrahimi /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ 2961*22dc650dSSadaf EbrahimiNo match 2962*22dc650dSSadaf Ebrahimi 2963*22dc650dSSadaf Ebrahimi/(?>(\.\d\d[1-9]?))\d+/ 2964*22dc650dSSadaf Ebrahimi 1.230003938 2965*22dc650dSSadaf Ebrahimi 0: .230003938 2966*22dc650dSSadaf Ebrahimi 1: .23 2967*22dc650dSSadaf Ebrahimi 1.875000282 2968*22dc650dSSadaf Ebrahimi 0: .875000282 2969*22dc650dSSadaf Ebrahimi 1: .875 2970*22dc650dSSadaf Ebrahimi\= Expect no match 2971*22dc650dSSadaf Ebrahimi 1.235 2972*22dc650dSSadaf EbrahimiNo match 2973*22dc650dSSadaf Ebrahimi 2974*22dc650dSSadaf Ebrahimi/^((?>\w+)|(?>\s+))*$/ 2975*22dc650dSSadaf Ebrahimi now is the time for all good men to come to the aid of the party 2976*22dc650dSSadaf Ebrahimi 0: now is the time for all good men to come to the aid of the party 2977*22dc650dSSadaf Ebrahimi 1: party 2978*22dc650dSSadaf Ebrahimi\= Expect no match 2979*22dc650dSSadaf Ebrahimi this is not a line with only words and spaces! 2980*22dc650dSSadaf EbrahimiNo match 2981*22dc650dSSadaf Ebrahimi 2982*22dc650dSSadaf Ebrahimi/(\d+)(\w)/ 2983*22dc650dSSadaf Ebrahimi 12345a 2984*22dc650dSSadaf Ebrahimi 0: 12345a 2985*22dc650dSSadaf Ebrahimi 1: 12345 2986*22dc650dSSadaf Ebrahimi 2: a 2987*22dc650dSSadaf Ebrahimi 12345+ 2988*22dc650dSSadaf Ebrahimi 0: 12345 2989*22dc650dSSadaf Ebrahimi 1: 1234 2990*22dc650dSSadaf Ebrahimi 2: 5 2991*22dc650dSSadaf Ebrahimi 2992*22dc650dSSadaf Ebrahimi/((?>\d+))(\w)/ 2993*22dc650dSSadaf Ebrahimi 12345a 2994*22dc650dSSadaf Ebrahimi 0: 12345a 2995*22dc650dSSadaf Ebrahimi 1: 12345 2996*22dc650dSSadaf Ebrahimi 2: a 2997*22dc650dSSadaf Ebrahimi\= Expect no match 2998*22dc650dSSadaf Ebrahimi 12345+ 2999*22dc650dSSadaf EbrahimiNo match 3000*22dc650dSSadaf Ebrahimi 3001*22dc650dSSadaf Ebrahimi/(?>a+)b/ 3002*22dc650dSSadaf Ebrahimi aaab 3003*22dc650dSSadaf Ebrahimi 0: aaab 3004*22dc650dSSadaf Ebrahimi 3005*22dc650dSSadaf Ebrahimi/((?>a+)b)/ 3006*22dc650dSSadaf Ebrahimi aaab 3007*22dc650dSSadaf Ebrahimi 0: aaab 3008*22dc650dSSadaf Ebrahimi 1: aaab 3009*22dc650dSSadaf Ebrahimi 3010*22dc650dSSadaf Ebrahimi/(?>(a+))b/ 3011*22dc650dSSadaf Ebrahimi aaab 3012*22dc650dSSadaf Ebrahimi 0: aaab 3013*22dc650dSSadaf Ebrahimi 1: aaa 3014*22dc650dSSadaf Ebrahimi 3015*22dc650dSSadaf Ebrahimi/(?>b)+/ 3016*22dc650dSSadaf Ebrahimi aaabbbccc 3017*22dc650dSSadaf Ebrahimi 0: bbb 3018*22dc650dSSadaf Ebrahimi 3019*22dc650dSSadaf Ebrahimi/(?>a+|b+|c+)*c/ 3020*22dc650dSSadaf Ebrahimi aaabbbbccccd 3021*22dc650dSSadaf Ebrahimi 0: aaabbbbc 3022*22dc650dSSadaf Ebrahimi 3023*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/ 3024*22dc650dSSadaf Ebrahimi ((abc(ade)ufh()()x 3025*22dc650dSSadaf Ebrahimi 0: abc(ade)ufh()()x 3026*22dc650dSSadaf Ebrahimi 1: x 3027*22dc650dSSadaf Ebrahimi 3028*22dc650dSSadaf Ebrahimi/\(((?>[^()]+)|\([^()]+\))+\)/ 3029*22dc650dSSadaf Ebrahimi (abc) 3030*22dc650dSSadaf Ebrahimi 0: (abc) 3031*22dc650dSSadaf Ebrahimi 1: abc 3032*22dc650dSSadaf Ebrahimi (abc(def)xyz) 3033*22dc650dSSadaf Ebrahimi 0: (abc(def)xyz) 3034*22dc650dSSadaf Ebrahimi 1: xyz 3035*22dc650dSSadaf Ebrahimi\= Expect no match 3036*22dc650dSSadaf Ebrahimi ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3037*22dc650dSSadaf EbrahimiNo match 3038*22dc650dSSadaf Ebrahimi 3039*22dc650dSSadaf Ebrahimi/a(?-i)b/i 3040*22dc650dSSadaf Ebrahimi ab 3041*22dc650dSSadaf Ebrahimi 0: ab 3042*22dc650dSSadaf Ebrahimi Ab 3043*22dc650dSSadaf Ebrahimi 0: Ab 3044*22dc650dSSadaf Ebrahimi\= Expect no match 3045*22dc650dSSadaf Ebrahimi aB 3046*22dc650dSSadaf EbrahimiNo match 3047*22dc650dSSadaf Ebrahimi AB 3048*22dc650dSSadaf EbrahimiNo match 3049*22dc650dSSadaf Ebrahimi 3050*22dc650dSSadaf Ebrahimi/(a (?x)b c)d e/ 3051*22dc650dSSadaf Ebrahimi a bcd e 3052*22dc650dSSadaf Ebrahimi 0: a bcd e 3053*22dc650dSSadaf Ebrahimi 1: a bc 3054*22dc650dSSadaf Ebrahimi\= Expect no match 3055*22dc650dSSadaf Ebrahimi a b cd e 3056*22dc650dSSadaf EbrahimiNo match 3057*22dc650dSSadaf Ebrahimi abcd e 3058*22dc650dSSadaf EbrahimiNo match 3059*22dc650dSSadaf Ebrahimi a bcde 3060*22dc650dSSadaf EbrahimiNo match 3061*22dc650dSSadaf Ebrahimi 3062*22dc650dSSadaf Ebrahimi/(a b(?x)c d (?-x)e f)/ 3063*22dc650dSSadaf Ebrahimi a bcde f 3064*22dc650dSSadaf Ebrahimi 0: a bcde f 3065*22dc650dSSadaf Ebrahimi 1: a bcde f 3066*22dc650dSSadaf Ebrahimi\= Expect no match 3067*22dc650dSSadaf Ebrahimi abcdef 3068*22dc650dSSadaf EbrahimiNo match 3069*22dc650dSSadaf Ebrahimi 3070*22dc650dSSadaf Ebrahimi/(a(?i)b)c/ 3071*22dc650dSSadaf Ebrahimi abc 3072*22dc650dSSadaf Ebrahimi 0: abc 3073*22dc650dSSadaf Ebrahimi 1: ab 3074*22dc650dSSadaf Ebrahimi aBc 3075*22dc650dSSadaf Ebrahimi 0: aBc 3076*22dc650dSSadaf Ebrahimi 1: aB 3077*22dc650dSSadaf Ebrahimi\= Expect no match 3078*22dc650dSSadaf Ebrahimi abC 3079*22dc650dSSadaf EbrahimiNo match 3080*22dc650dSSadaf Ebrahimi aBC 3081*22dc650dSSadaf EbrahimiNo match 3082*22dc650dSSadaf Ebrahimi Abc 3083*22dc650dSSadaf EbrahimiNo match 3084*22dc650dSSadaf Ebrahimi ABc 3085*22dc650dSSadaf EbrahimiNo match 3086*22dc650dSSadaf Ebrahimi ABC 3087*22dc650dSSadaf EbrahimiNo match 3088*22dc650dSSadaf Ebrahimi AbC 3089*22dc650dSSadaf EbrahimiNo match 3090*22dc650dSSadaf Ebrahimi 3091*22dc650dSSadaf Ebrahimi/a(?i:b)c/ 3092*22dc650dSSadaf Ebrahimi abc 3093*22dc650dSSadaf Ebrahimi 0: abc 3094*22dc650dSSadaf Ebrahimi aBc 3095*22dc650dSSadaf Ebrahimi 0: aBc 3096*22dc650dSSadaf Ebrahimi\= Expect no match 3097*22dc650dSSadaf Ebrahimi ABC 3098*22dc650dSSadaf EbrahimiNo match 3099*22dc650dSSadaf Ebrahimi abC 3100*22dc650dSSadaf EbrahimiNo match 3101*22dc650dSSadaf Ebrahimi aBC 3102*22dc650dSSadaf EbrahimiNo match 3103*22dc650dSSadaf Ebrahimi 3104*22dc650dSSadaf Ebrahimi/a(?i:b)*c/ 3105*22dc650dSSadaf Ebrahimi aBc 3106*22dc650dSSadaf Ebrahimi 0: aBc 3107*22dc650dSSadaf Ebrahimi aBBc 3108*22dc650dSSadaf Ebrahimi 0: aBBc 3109*22dc650dSSadaf Ebrahimi\= Expect no match 3110*22dc650dSSadaf Ebrahimi aBC 3111*22dc650dSSadaf EbrahimiNo match 3112*22dc650dSSadaf Ebrahimi aBBC 3113*22dc650dSSadaf EbrahimiNo match 3114*22dc650dSSadaf Ebrahimi 3115*22dc650dSSadaf Ebrahimi/a(?=b(?i)c)\w\wd/ 3116*22dc650dSSadaf Ebrahimi abcd 3117*22dc650dSSadaf Ebrahimi 0: abcd 3118*22dc650dSSadaf Ebrahimi abCd 3119*22dc650dSSadaf Ebrahimi 0: abCd 3120*22dc650dSSadaf Ebrahimi\= Expect no match 3121*22dc650dSSadaf Ebrahimi aBCd 3122*22dc650dSSadaf EbrahimiNo match 3123*22dc650dSSadaf Ebrahimi abcD 3124*22dc650dSSadaf EbrahimiNo match 3125*22dc650dSSadaf Ebrahimi 3126*22dc650dSSadaf Ebrahimi/(?s-i:more.*than).*million/i 3127*22dc650dSSadaf Ebrahimi more than million 3128*22dc650dSSadaf Ebrahimi 0: more than million 3129*22dc650dSSadaf Ebrahimi more than MILLION 3130*22dc650dSSadaf Ebrahimi 0: more than MILLION 3131*22dc650dSSadaf Ebrahimi more \n than Million 3132*22dc650dSSadaf Ebrahimi 0: more \x0a than Million 3133*22dc650dSSadaf Ebrahimi\= Expect no match 3134*22dc650dSSadaf Ebrahimi MORE THAN MILLION 3135*22dc650dSSadaf EbrahimiNo match 3136*22dc650dSSadaf Ebrahimi more \n than \n million 3137*22dc650dSSadaf EbrahimiNo match 3138*22dc650dSSadaf Ebrahimi 3139*22dc650dSSadaf Ebrahimi/(?:(?s-i)more.*than).*million/i 3140*22dc650dSSadaf Ebrahimi more than million 3141*22dc650dSSadaf Ebrahimi 0: more than million 3142*22dc650dSSadaf Ebrahimi more than MILLION 3143*22dc650dSSadaf Ebrahimi 0: more than MILLION 3144*22dc650dSSadaf Ebrahimi more \n than Million 3145*22dc650dSSadaf Ebrahimi 0: more \x0a than Million 3146*22dc650dSSadaf Ebrahimi\= Expect no match 3147*22dc650dSSadaf Ebrahimi MORE THAN MILLION 3148*22dc650dSSadaf EbrahimiNo match 3149*22dc650dSSadaf Ebrahimi more \n than \n million 3150*22dc650dSSadaf EbrahimiNo match 3151*22dc650dSSadaf Ebrahimi 3152*22dc650dSSadaf Ebrahimi/(?>a(?i)b+)+c/ 3153*22dc650dSSadaf Ebrahimi abc 3154*22dc650dSSadaf Ebrahimi 0: abc 3155*22dc650dSSadaf Ebrahimi aBbc 3156*22dc650dSSadaf Ebrahimi 0: aBbc 3157*22dc650dSSadaf Ebrahimi aBBc 3158*22dc650dSSadaf Ebrahimi 0: aBBc 3159*22dc650dSSadaf Ebrahimi\= Expect no match 3160*22dc650dSSadaf Ebrahimi Abc 3161*22dc650dSSadaf EbrahimiNo match 3162*22dc650dSSadaf Ebrahimi abAb 3163*22dc650dSSadaf EbrahimiNo match 3164*22dc650dSSadaf Ebrahimi abbC 3165*22dc650dSSadaf EbrahimiNo match 3166*22dc650dSSadaf Ebrahimi 3167*22dc650dSSadaf Ebrahimi/(?=a(?i)b)\w\wc/ 3168*22dc650dSSadaf Ebrahimi abc 3169*22dc650dSSadaf Ebrahimi 0: abc 3170*22dc650dSSadaf Ebrahimi aBc 3171*22dc650dSSadaf Ebrahimi 0: aBc 3172*22dc650dSSadaf Ebrahimi\= Expect no match 3173*22dc650dSSadaf Ebrahimi Ab 3174*22dc650dSSadaf EbrahimiNo match 3175*22dc650dSSadaf Ebrahimi abC 3176*22dc650dSSadaf EbrahimiNo match 3177*22dc650dSSadaf Ebrahimi aBC 3178*22dc650dSSadaf EbrahimiNo match 3179*22dc650dSSadaf Ebrahimi 3180*22dc650dSSadaf Ebrahimi/(?<=a(?i)b)(\w\w)c/ 3181*22dc650dSSadaf Ebrahimi abxxc 3182*22dc650dSSadaf Ebrahimi 0: xxc 3183*22dc650dSSadaf Ebrahimi 1: xx 3184*22dc650dSSadaf Ebrahimi aBxxc 3185*22dc650dSSadaf Ebrahimi 0: xxc 3186*22dc650dSSadaf Ebrahimi 1: xx 3187*22dc650dSSadaf Ebrahimi\= Expect no match 3188*22dc650dSSadaf Ebrahimi Abxxc 3189*22dc650dSSadaf EbrahimiNo match 3190*22dc650dSSadaf Ebrahimi ABxxc 3191*22dc650dSSadaf EbrahimiNo match 3192*22dc650dSSadaf Ebrahimi abxxC 3193*22dc650dSSadaf EbrahimiNo match 3194*22dc650dSSadaf Ebrahimi 3195*22dc650dSSadaf Ebrahimi/(?:(a)|b)(?(1)A|B)/ 3196*22dc650dSSadaf Ebrahimi aA 3197*22dc650dSSadaf Ebrahimi 0: aA 3198*22dc650dSSadaf Ebrahimi 1: a 3199*22dc650dSSadaf Ebrahimi bB 3200*22dc650dSSadaf Ebrahimi 0: bB 3201*22dc650dSSadaf Ebrahimi\= Expect no match 3202*22dc650dSSadaf Ebrahimi aB 3203*22dc650dSSadaf EbrahimiNo match 3204*22dc650dSSadaf Ebrahimi bA 3205*22dc650dSSadaf EbrahimiNo match 3206*22dc650dSSadaf Ebrahimi 3207*22dc650dSSadaf Ebrahimi/^(a)?(?(1)a|b)+$/ 3208*22dc650dSSadaf Ebrahimi aa 3209*22dc650dSSadaf Ebrahimi 0: aa 3210*22dc650dSSadaf Ebrahimi 1: a 3211*22dc650dSSadaf Ebrahimi b 3212*22dc650dSSadaf Ebrahimi 0: b 3213*22dc650dSSadaf Ebrahimi bb 3214*22dc650dSSadaf Ebrahimi 0: bb 3215*22dc650dSSadaf Ebrahimi\= Expect no match 3216*22dc650dSSadaf Ebrahimi ab 3217*22dc650dSSadaf EbrahimiNo match 3218*22dc650dSSadaf Ebrahimi 3219*22dc650dSSadaf Ebrahimi# Perl gets this next one wrong if the pattern ends with $; in that case it 3220*22dc650dSSadaf Ebrahimi# fails to match "12". 3221*22dc650dSSadaf Ebrahimi 3222*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)/ 3223*22dc650dSSadaf Ebrahimi abc: 3224*22dc650dSSadaf Ebrahimi 0: abc: 3225*22dc650dSSadaf Ebrahimi 12 3226*22dc650dSSadaf Ebrahimi 0: 12 3227*22dc650dSSadaf Ebrahimi 123 3228*22dc650dSSadaf Ebrahimi 0: 12 3229*22dc650dSSadaf Ebrahimi\= Expect no match 3230*22dc650dSSadaf Ebrahimi xyz 3231*22dc650dSSadaf EbrahimiNo match 3232*22dc650dSSadaf Ebrahimi 3233*22dc650dSSadaf Ebrahimi/^(?(?!abc)\d\d|\w{3}:)$/ 3234*22dc650dSSadaf Ebrahimi abc: 3235*22dc650dSSadaf Ebrahimi 0: abc: 3236*22dc650dSSadaf Ebrahimi 12 3237*22dc650dSSadaf Ebrahimi 0: 12 3238*22dc650dSSadaf Ebrahimi\= Expect no match 3239*22dc650dSSadaf Ebrahimi 123 3240*22dc650dSSadaf EbrahimiNo match 3241*22dc650dSSadaf Ebrahimi xyz 3242*22dc650dSSadaf EbrahimiNo match 3243*22dc650dSSadaf Ebrahimi 3244*22dc650dSSadaf Ebrahimi/(?(?<=foo)bar|cat)/ 3245*22dc650dSSadaf Ebrahimi foobar 3246*22dc650dSSadaf Ebrahimi 0: bar 3247*22dc650dSSadaf Ebrahimi cat 3248*22dc650dSSadaf Ebrahimi 0: cat 3249*22dc650dSSadaf Ebrahimi fcat 3250*22dc650dSSadaf Ebrahimi 0: cat 3251*22dc650dSSadaf Ebrahimi focat 3252*22dc650dSSadaf Ebrahimi 0: cat 3253*22dc650dSSadaf Ebrahimi\= Expect no match 3254*22dc650dSSadaf Ebrahimi foocat 3255*22dc650dSSadaf EbrahimiNo match 3256*22dc650dSSadaf Ebrahimi 3257*22dc650dSSadaf Ebrahimi/(?(?<!foo)cat|bar)/ 3258*22dc650dSSadaf Ebrahimi foobar 3259*22dc650dSSadaf Ebrahimi 0: bar 3260*22dc650dSSadaf Ebrahimi cat 3261*22dc650dSSadaf Ebrahimi 0: cat 3262*22dc650dSSadaf Ebrahimi fcat 3263*22dc650dSSadaf Ebrahimi 0: cat 3264*22dc650dSSadaf Ebrahimi focat 3265*22dc650dSSadaf Ebrahimi 0: cat 3266*22dc650dSSadaf Ebrahimi\= Expect no match 3267*22dc650dSSadaf Ebrahimi foocat 3268*22dc650dSSadaf EbrahimiNo match 3269*22dc650dSSadaf Ebrahimi 3270*22dc650dSSadaf Ebrahimi/( \( )? [^()]+ (?(1) \) |) /x 3271*22dc650dSSadaf Ebrahimi abcd 3272*22dc650dSSadaf Ebrahimi 0: abcd 3273*22dc650dSSadaf Ebrahimi (abcd) 3274*22dc650dSSadaf Ebrahimi 0: (abcd) 3275*22dc650dSSadaf Ebrahimi 1: ( 3276*22dc650dSSadaf Ebrahimi the quick (abcd) fox 3277*22dc650dSSadaf Ebrahimi 0: the quick 3278*22dc650dSSadaf Ebrahimi (abcd 3279*22dc650dSSadaf Ebrahimi 0: abcd 3280*22dc650dSSadaf Ebrahimi 3281*22dc650dSSadaf Ebrahimi/( \( )? [^()]+ (?(1) \) ) /x 3282*22dc650dSSadaf Ebrahimi abcd 3283*22dc650dSSadaf Ebrahimi 0: abcd 3284*22dc650dSSadaf Ebrahimi (abcd) 3285*22dc650dSSadaf Ebrahimi 0: (abcd) 3286*22dc650dSSadaf Ebrahimi 1: ( 3287*22dc650dSSadaf Ebrahimi the quick (abcd) fox 3288*22dc650dSSadaf Ebrahimi 0: the quick 3289*22dc650dSSadaf Ebrahimi (abcd 3290*22dc650dSSadaf Ebrahimi 0: abcd 3291*22dc650dSSadaf Ebrahimi 3292*22dc650dSSadaf Ebrahimi/^(?(2)a|(1)(2))+$/ 3293*22dc650dSSadaf Ebrahimi 12 3294*22dc650dSSadaf Ebrahimi 0: 12 3295*22dc650dSSadaf Ebrahimi 1: 1 3296*22dc650dSSadaf Ebrahimi 2: 2 3297*22dc650dSSadaf Ebrahimi 12a 3298*22dc650dSSadaf Ebrahimi 0: 12a 3299*22dc650dSSadaf Ebrahimi 1: 1 3300*22dc650dSSadaf Ebrahimi 2: 2 3301*22dc650dSSadaf Ebrahimi 12aa 3302*22dc650dSSadaf Ebrahimi 0: 12aa 3303*22dc650dSSadaf Ebrahimi 1: 1 3304*22dc650dSSadaf Ebrahimi 2: 2 3305*22dc650dSSadaf Ebrahimi\= Expect no match 3306*22dc650dSSadaf Ebrahimi 1234 3307*22dc650dSSadaf EbrahimiNo match 3308*22dc650dSSadaf Ebrahimi 3309*22dc650dSSadaf Ebrahimi/((?i)blah)\s+\1/ 3310*22dc650dSSadaf Ebrahimi blah blah 3311*22dc650dSSadaf Ebrahimi 0: blah blah 3312*22dc650dSSadaf Ebrahimi 1: blah 3313*22dc650dSSadaf Ebrahimi BLAH BLAH 3314*22dc650dSSadaf Ebrahimi 0: BLAH BLAH 3315*22dc650dSSadaf Ebrahimi 1: BLAH 3316*22dc650dSSadaf Ebrahimi Blah Blah 3317*22dc650dSSadaf Ebrahimi 0: Blah Blah 3318*22dc650dSSadaf Ebrahimi 1: Blah 3319*22dc650dSSadaf Ebrahimi blaH blaH 3320*22dc650dSSadaf Ebrahimi 0: blaH blaH 3321*22dc650dSSadaf Ebrahimi 1: blaH 3322*22dc650dSSadaf Ebrahimi\= Expect no match 3323*22dc650dSSadaf Ebrahimi blah BLAH 3324*22dc650dSSadaf EbrahimiNo match 3325*22dc650dSSadaf Ebrahimi Blah blah 3326*22dc650dSSadaf EbrahimiNo match 3327*22dc650dSSadaf Ebrahimi blaH blah 3328*22dc650dSSadaf EbrahimiNo match 3329*22dc650dSSadaf Ebrahimi 3330*22dc650dSSadaf Ebrahimi/((?i)blah)\s+(?i:\1)/ 3331*22dc650dSSadaf Ebrahimi blah blah 3332*22dc650dSSadaf Ebrahimi 0: blah blah 3333*22dc650dSSadaf Ebrahimi 1: blah 3334*22dc650dSSadaf Ebrahimi BLAH BLAH 3335*22dc650dSSadaf Ebrahimi 0: BLAH BLAH 3336*22dc650dSSadaf Ebrahimi 1: BLAH 3337*22dc650dSSadaf Ebrahimi Blah Blah 3338*22dc650dSSadaf Ebrahimi 0: Blah Blah 3339*22dc650dSSadaf Ebrahimi 1: Blah 3340*22dc650dSSadaf Ebrahimi blaH blaH 3341*22dc650dSSadaf Ebrahimi 0: blaH blaH 3342*22dc650dSSadaf Ebrahimi 1: blaH 3343*22dc650dSSadaf Ebrahimi blah BLAH 3344*22dc650dSSadaf Ebrahimi 0: blah BLAH 3345*22dc650dSSadaf Ebrahimi 1: blah 3346*22dc650dSSadaf Ebrahimi Blah blah 3347*22dc650dSSadaf Ebrahimi 0: Blah blah 3348*22dc650dSSadaf Ebrahimi 1: Blah 3349*22dc650dSSadaf Ebrahimi blaH blah 3350*22dc650dSSadaf Ebrahimi 0: blaH blah 3351*22dc650dSSadaf Ebrahimi 1: blaH 3352*22dc650dSSadaf Ebrahimi 3353*22dc650dSSadaf Ebrahimi/((?i)blah)\s+(?m)A(?i:\1)/ 3354*22dc650dSSadaf Ebrahimi blah ABLAH 3355*22dc650dSSadaf Ebrahimi 0: blah ABLAH 3356*22dc650dSSadaf Ebrahimi 1: blah 3357*22dc650dSSadaf Ebrahimi\= Expect no match 3358*22dc650dSSadaf Ebrahimi blah aBLAH 3359*22dc650dSSadaf EbrahimiNo match 3360*22dc650dSSadaf Ebrahimi 3361*22dc650dSSadaf Ebrahimi/(?>a*)*/ 3362*22dc650dSSadaf Ebrahimi a 3363*22dc650dSSadaf Ebrahimi 0: a 3364*22dc650dSSadaf Ebrahimi aa 3365*22dc650dSSadaf Ebrahimi 0: aa 3366*22dc650dSSadaf Ebrahimi aaaa 3367*22dc650dSSadaf Ebrahimi 0: aaaa 3368*22dc650dSSadaf Ebrahimi 3369*22dc650dSSadaf Ebrahimi/(abc|)+/ 3370*22dc650dSSadaf Ebrahimi abc 3371*22dc650dSSadaf Ebrahimi 0: abc 3372*22dc650dSSadaf Ebrahimi 1: 3373*22dc650dSSadaf Ebrahimi abcabc 3374*22dc650dSSadaf Ebrahimi 0: abcabc 3375*22dc650dSSadaf Ebrahimi 1: 3376*22dc650dSSadaf Ebrahimi abcabcabc 3377*22dc650dSSadaf Ebrahimi 0: abcabcabc 3378*22dc650dSSadaf Ebrahimi 1: 3379*22dc650dSSadaf Ebrahimi xyz 3380*22dc650dSSadaf Ebrahimi 0: 3381*22dc650dSSadaf Ebrahimi 1: 3382*22dc650dSSadaf Ebrahimi 3383*22dc650dSSadaf Ebrahimi/([a]*)*/ 3384*22dc650dSSadaf Ebrahimi a 3385*22dc650dSSadaf Ebrahimi 0: a 3386*22dc650dSSadaf Ebrahimi 1: 3387*22dc650dSSadaf Ebrahimi aaaaa 3388*22dc650dSSadaf Ebrahimi 0: aaaaa 3389*22dc650dSSadaf Ebrahimi 1: 3390*22dc650dSSadaf Ebrahimi 3391*22dc650dSSadaf Ebrahimi/([ab]*)*/ 3392*22dc650dSSadaf Ebrahimi a 3393*22dc650dSSadaf Ebrahimi 0: a 3394*22dc650dSSadaf Ebrahimi 1: 3395*22dc650dSSadaf Ebrahimi b 3396*22dc650dSSadaf Ebrahimi 0: b 3397*22dc650dSSadaf Ebrahimi 1: 3398*22dc650dSSadaf Ebrahimi ababab 3399*22dc650dSSadaf Ebrahimi 0: ababab 3400*22dc650dSSadaf Ebrahimi 1: 3401*22dc650dSSadaf Ebrahimi aaaabcde 3402*22dc650dSSadaf Ebrahimi 0: aaaab 3403*22dc650dSSadaf Ebrahimi 1: 3404*22dc650dSSadaf Ebrahimi bbbb 3405*22dc650dSSadaf Ebrahimi 0: bbbb 3406*22dc650dSSadaf Ebrahimi 1: 3407*22dc650dSSadaf Ebrahimi 3408*22dc650dSSadaf Ebrahimi/([^a]*)*/ 3409*22dc650dSSadaf Ebrahimi b 3410*22dc650dSSadaf Ebrahimi 0: b 3411*22dc650dSSadaf Ebrahimi 1: 3412*22dc650dSSadaf Ebrahimi bbbb 3413*22dc650dSSadaf Ebrahimi 0: bbbb 3414*22dc650dSSadaf Ebrahimi 1: 3415*22dc650dSSadaf Ebrahimi aaa 3416*22dc650dSSadaf Ebrahimi 0: 3417*22dc650dSSadaf Ebrahimi 1: 3418*22dc650dSSadaf Ebrahimi 3419*22dc650dSSadaf Ebrahimi/([^ab]*)*/ 3420*22dc650dSSadaf Ebrahimi cccc 3421*22dc650dSSadaf Ebrahimi 0: cccc 3422*22dc650dSSadaf Ebrahimi 1: 3423*22dc650dSSadaf Ebrahimi abab 3424*22dc650dSSadaf Ebrahimi 0: 3425*22dc650dSSadaf Ebrahimi 1: 3426*22dc650dSSadaf Ebrahimi 3427*22dc650dSSadaf Ebrahimi/([a]*?)*/ 3428*22dc650dSSadaf Ebrahimi a 3429*22dc650dSSadaf Ebrahimi 0: 3430*22dc650dSSadaf Ebrahimi 1: 3431*22dc650dSSadaf Ebrahimi aaaa 3432*22dc650dSSadaf Ebrahimi 0: 3433*22dc650dSSadaf Ebrahimi 1: 3434*22dc650dSSadaf Ebrahimi 3435*22dc650dSSadaf Ebrahimi/([ab]*?)*/ 3436*22dc650dSSadaf Ebrahimi a 3437*22dc650dSSadaf Ebrahimi 0: 3438*22dc650dSSadaf Ebrahimi 1: 3439*22dc650dSSadaf Ebrahimi b 3440*22dc650dSSadaf Ebrahimi 0: 3441*22dc650dSSadaf Ebrahimi 1: 3442*22dc650dSSadaf Ebrahimi abab 3443*22dc650dSSadaf Ebrahimi 0: 3444*22dc650dSSadaf Ebrahimi 1: 3445*22dc650dSSadaf Ebrahimi baba 3446*22dc650dSSadaf Ebrahimi 0: 3447*22dc650dSSadaf Ebrahimi 1: 3448*22dc650dSSadaf Ebrahimi 3449*22dc650dSSadaf Ebrahimi/([^a]*?)*/ 3450*22dc650dSSadaf Ebrahimi b 3451*22dc650dSSadaf Ebrahimi 0: 3452*22dc650dSSadaf Ebrahimi 1: 3453*22dc650dSSadaf Ebrahimi bbbb 3454*22dc650dSSadaf Ebrahimi 0: 3455*22dc650dSSadaf Ebrahimi 1: 3456*22dc650dSSadaf Ebrahimi aaa 3457*22dc650dSSadaf Ebrahimi 0: 3458*22dc650dSSadaf Ebrahimi 1: 3459*22dc650dSSadaf Ebrahimi 3460*22dc650dSSadaf Ebrahimi/([^ab]*?)*/ 3461*22dc650dSSadaf Ebrahimi c 3462*22dc650dSSadaf Ebrahimi 0: 3463*22dc650dSSadaf Ebrahimi 1: 3464*22dc650dSSadaf Ebrahimi cccc 3465*22dc650dSSadaf Ebrahimi 0: 3466*22dc650dSSadaf Ebrahimi 1: 3467*22dc650dSSadaf Ebrahimi baba 3468*22dc650dSSadaf Ebrahimi 0: 3469*22dc650dSSadaf Ebrahimi 1: 3470*22dc650dSSadaf Ebrahimi 3471*22dc650dSSadaf Ebrahimi/(?>a*)*/ 3472*22dc650dSSadaf Ebrahimi a 3473*22dc650dSSadaf Ebrahimi 0: a 3474*22dc650dSSadaf Ebrahimi aaabcde 3475*22dc650dSSadaf Ebrahimi 0: aaa 3476*22dc650dSSadaf Ebrahimi 3477*22dc650dSSadaf Ebrahimi/((?>a*))*/ 3478*22dc650dSSadaf Ebrahimi aaaaa 3479*22dc650dSSadaf Ebrahimi 0: aaaaa 3480*22dc650dSSadaf Ebrahimi 1: 3481*22dc650dSSadaf Ebrahimi aabbaa 3482*22dc650dSSadaf Ebrahimi 0: aa 3483*22dc650dSSadaf Ebrahimi 1: 3484*22dc650dSSadaf Ebrahimi 3485*22dc650dSSadaf Ebrahimi/((?>a*?))*/ 3486*22dc650dSSadaf Ebrahimi aaaaa 3487*22dc650dSSadaf Ebrahimi 0: 3488*22dc650dSSadaf Ebrahimi 1: 3489*22dc650dSSadaf Ebrahimi aabbaa 3490*22dc650dSSadaf Ebrahimi 0: 3491*22dc650dSSadaf Ebrahimi 1: 3492*22dc650dSSadaf Ebrahimi 3493*22dc650dSSadaf Ebrahimi/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x 3494*22dc650dSSadaf Ebrahimi 12-sep-98 3495*22dc650dSSadaf Ebrahimi 0: 12-sep-98 3496*22dc650dSSadaf Ebrahimi 12-09-98 3497*22dc650dSSadaf Ebrahimi 0: 12-09-98 3498*22dc650dSSadaf Ebrahimi\= Expect no match 3499*22dc650dSSadaf Ebrahimi sep-12-98 3500*22dc650dSSadaf EbrahimiNo match 3501*22dc650dSSadaf Ebrahimi 3502*22dc650dSSadaf Ebrahimi/(?<=(foo))bar\1/ 3503*22dc650dSSadaf Ebrahimi foobarfoo 3504*22dc650dSSadaf Ebrahimi 0: barfoo 3505*22dc650dSSadaf Ebrahimi 1: foo 3506*22dc650dSSadaf Ebrahimi foobarfootling 3507*22dc650dSSadaf Ebrahimi 0: barfoo 3508*22dc650dSSadaf Ebrahimi 1: foo 3509*22dc650dSSadaf Ebrahimi\= Expect no match 3510*22dc650dSSadaf Ebrahimi foobar 3511*22dc650dSSadaf EbrahimiNo match 3512*22dc650dSSadaf Ebrahimi barfoo 3513*22dc650dSSadaf EbrahimiNo match 3514*22dc650dSSadaf Ebrahimi 3515*22dc650dSSadaf Ebrahimi/(?i:saturday|sunday)/ 3516*22dc650dSSadaf Ebrahimi saturday 3517*22dc650dSSadaf Ebrahimi 0: saturday 3518*22dc650dSSadaf Ebrahimi sunday 3519*22dc650dSSadaf Ebrahimi 0: sunday 3520*22dc650dSSadaf Ebrahimi Saturday 3521*22dc650dSSadaf Ebrahimi 0: Saturday 3522*22dc650dSSadaf Ebrahimi Sunday 3523*22dc650dSSadaf Ebrahimi 0: Sunday 3524*22dc650dSSadaf Ebrahimi SATURDAY 3525*22dc650dSSadaf Ebrahimi 0: SATURDAY 3526*22dc650dSSadaf Ebrahimi SUNDAY 3527*22dc650dSSadaf Ebrahimi 0: SUNDAY 3528*22dc650dSSadaf Ebrahimi SunDay 3529*22dc650dSSadaf Ebrahimi 0: SunDay 3530*22dc650dSSadaf Ebrahimi 3531*22dc650dSSadaf Ebrahimi/(a(?i)bc|BB)x/ 3532*22dc650dSSadaf Ebrahimi abcx 3533*22dc650dSSadaf Ebrahimi 0: abcx 3534*22dc650dSSadaf Ebrahimi 1: abc 3535*22dc650dSSadaf Ebrahimi aBCx 3536*22dc650dSSadaf Ebrahimi 0: aBCx 3537*22dc650dSSadaf Ebrahimi 1: aBC 3538*22dc650dSSadaf Ebrahimi bbx 3539*22dc650dSSadaf Ebrahimi 0: bbx 3540*22dc650dSSadaf Ebrahimi 1: bb 3541*22dc650dSSadaf Ebrahimi BBx 3542*22dc650dSSadaf Ebrahimi 0: BBx 3543*22dc650dSSadaf Ebrahimi 1: BB 3544*22dc650dSSadaf Ebrahimi\= Expect no match 3545*22dc650dSSadaf Ebrahimi abcX 3546*22dc650dSSadaf EbrahimiNo match 3547*22dc650dSSadaf Ebrahimi aBCX 3548*22dc650dSSadaf EbrahimiNo match 3549*22dc650dSSadaf Ebrahimi bbX 3550*22dc650dSSadaf EbrahimiNo match 3551*22dc650dSSadaf Ebrahimi BBX 3552*22dc650dSSadaf EbrahimiNo match 3553*22dc650dSSadaf Ebrahimi 3554*22dc650dSSadaf Ebrahimi/^([ab](?i)[cd]|[ef])/ 3555*22dc650dSSadaf Ebrahimi ac 3556*22dc650dSSadaf Ebrahimi 0: ac 3557*22dc650dSSadaf Ebrahimi 1: ac 3558*22dc650dSSadaf Ebrahimi aC 3559*22dc650dSSadaf Ebrahimi 0: aC 3560*22dc650dSSadaf Ebrahimi 1: aC 3561*22dc650dSSadaf Ebrahimi bD 3562*22dc650dSSadaf Ebrahimi 0: bD 3563*22dc650dSSadaf Ebrahimi 1: bD 3564*22dc650dSSadaf Ebrahimi elephant 3565*22dc650dSSadaf Ebrahimi 0: e 3566*22dc650dSSadaf Ebrahimi 1: e 3567*22dc650dSSadaf Ebrahimi Europe 3568*22dc650dSSadaf Ebrahimi 0: E 3569*22dc650dSSadaf Ebrahimi 1: E 3570*22dc650dSSadaf Ebrahimi frog 3571*22dc650dSSadaf Ebrahimi 0: f 3572*22dc650dSSadaf Ebrahimi 1: f 3573*22dc650dSSadaf Ebrahimi France 3574*22dc650dSSadaf Ebrahimi 0: F 3575*22dc650dSSadaf Ebrahimi 1: F 3576*22dc650dSSadaf Ebrahimi\= Expect no match 3577*22dc650dSSadaf Ebrahimi Africa 3578*22dc650dSSadaf EbrahimiNo match 3579*22dc650dSSadaf Ebrahimi 3580*22dc650dSSadaf Ebrahimi/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ 3581*22dc650dSSadaf Ebrahimi ab 3582*22dc650dSSadaf Ebrahimi 0: ab 3583*22dc650dSSadaf Ebrahimi 1: ab 3584*22dc650dSSadaf Ebrahimi aBd 3585*22dc650dSSadaf Ebrahimi 0: aBd 3586*22dc650dSSadaf Ebrahimi 1: aBd 3587*22dc650dSSadaf Ebrahimi xy 3588*22dc650dSSadaf Ebrahimi 0: xy 3589*22dc650dSSadaf Ebrahimi 1: xy 3590*22dc650dSSadaf Ebrahimi xY 3591*22dc650dSSadaf Ebrahimi 0: xY 3592*22dc650dSSadaf Ebrahimi 1: xY 3593*22dc650dSSadaf Ebrahimi zebra 3594*22dc650dSSadaf Ebrahimi 0: z 3595*22dc650dSSadaf Ebrahimi 1: z 3596*22dc650dSSadaf Ebrahimi Zambesi 3597*22dc650dSSadaf Ebrahimi 0: Z 3598*22dc650dSSadaf Ebrahimi 1: Z 3599*22dc650dSSadaf Ebrahimi\= Expect no match 3600*22dc650dSSadaf Ebrahimi aCD 3601*22dc650dSSadaf EbrahimiNo match 3602*22dc650dSSadaf Ebrahimi XY 3603*22dc650dSSadaf EbrahimiNo match 3604*22dc650dSSadaf Ebrahimi 3605*22dc650dSSadaf Ebrahimi/(?<=foo\n)^bar/m 3606*22dc650dSSadaf Ebrahimi foo\nbar 3607*22dc650dSSadaf Ebrahimi 0: bar 3608*22dc650dSSadaf Ebrahimi\= Expect no match 3609*22dc650dSSadaf Ebrahimi bar 3610*22dc650dSSadaf EbrahimiNo match 3611*22dc650dSSadaf Ebrahimi baz\nbar 3612*22dc650dSSadaf EbrahimiNo match 3613*22dc650dSSadaf Ebrahimi 3614*22dc650dSSadaf Ebrahimi/(?<=(?<!foo)bar)baz/ 3615*22dc650dSSadaf Ebrahimi barbaz 3616*22dc650dSSadaf Ebrahimi 0: baz 3617*22dc650dSSadaf Ebrahimi barbarbaz 3618*22dc650dSSadaf Ebrahimi 0: baz 3619*22dc650dSSadaf Ebrahimi koobarbaz 3620*22dc650dSSadaf Ebrahimi 0: baz 3621*22dc650dSSadaf Ebrahimi\= Expect no match 3622*22dc650dSSadaf Ebrahimi baz 3623*22dc650dSSadaf EbrahimiNo match 3624*22dc650dSSadaf Ebrahimi foobarbaz 3625*22dc650dSSadaf EbrahimiNo match 3626*22dc650dSSadaf Ebrahimi 3627*22dc650dSSadaf Ebrahimi# The cases of aaaa and aaaaaa are missed out below because Perl does things 3628*22dc650dSSadaf Ebrahimi# differently. We know that odd, and maybe incorrect, things happen with 3629*22dc650dSSadaf Ebrahimi# recursive references in Perl, as far as 5.11.3 - see some stuff in test #2. 3630*22dc650dSSadaf Ebrahimi 3631*22dc650dSSadaf Ebrahimi/^(a\1?){4}$/ 3632*22dc650dSSadaf Ebrahimi aaaaa 3633*22dc650dSSadaf Ebrahimi 0: aaaaa 3634*22dc650dSSadaf Ebrahimi 1: a 3635*22dc650dSSadaf Ebrahimi aaaaaaa 3636*22dc650dSSadaf Ebrahimi 0: aaaaaaa 3637*22dc650dSSadaf Ebrahimi 1: a 3638*22dc650dSSadaf Ebrahimi aaaaaaaaaa 3639*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaa 3640*22dc650dSSadaf Ebrahimi 1: aaaa 3641*22dc650dSSadaf Ebrahimi\= Expect no match 3642*22dc650dSSadaf Ebrahimi a 3643*22dc650dSSadaf EbrahimiNo match 3644*22dc650dSSadaf Ebrahimi aa 3645*22dc650dSSadaf EbrahimiNo match 3646*22dc650dSSadaf Ebrahimi aaa 3647*22dc650dSSadaf EbrahimiNo match 3648*22dc650dSSadaf Ebrahimi aaaaaaaa 3649*22dc650dSSadaf EbrahimiNo match 3650*22dc650dSSadaf Ebrahimi aaaaaaaaa 3651*22dc650dSSadaf EbrahimiNo match 3652*22dc650dSSadaf Ebrahimi aaaaaaaaaaa 3653*22dc650dSSadaf EbrahimiNo match 3654*22dc650dSSadaf Ebrahimi aaaaaaaaaaaa 3655*22dc650dSSadaf EbrahimiNo match 3656*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaa 3657*22dc650dSSadaf EbrahimiNo match 3658*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaa 3659*22dc650dSSadaf EbrahimiNo match 3660*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaa 3661*22dc650dSSadaf EbrahimiNo match 3662*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaa 3663*22dc650dSSadaf EbrahimiNo match 3664*22dc650dSSadaf Ebrahimi 3665*22dc650dSSadaf Ebrahimi/^(a\1?)(a\1?)(a\2?)(a\3?)$/ 3666*22dc650dSSadaf Ebrahimi aaaa 3667*22dc650dSSadaf Ebrahimi 0: aaaa 3668*22dc650dSSadaf Ebrahimi 1: a 3669*22dc650dSSadaf Ebrahimi 2: a 3670*22dc650dSSadaf Ebrahimi 3: a 3671*22dc650dSSadaf Ebrahimi 4: a 3672*22dc650dSSadaf Ebrahimi aaaaa 3673*22dc650dSSadaf Ebrahimi 0: aaaaa 3674*22dc650dSSadaf Ebrahimi 1: a 3675*22dc650dSSadaf Ebrahimi 2: aa 3676*22dc650dSSadaf Ebrahimi 3: a 3677*22dc650dSSadaf Ebrahimi 4: a 3678*22dc650dSSadaf Ebrahimi aaaaaa 3679*22dc650dSSadaf Ebrahimi 0: aaaaaa 3680*22dc650dSSadaf Ebrahimi 1: a 3681*22dc650dSSadaf Ebrahimi 2: aa 3682*22dc650dSSadaf Ebrahimi 3: a 3683*22dc650dSSadaf Ebrahimi 4: aa 3684*22dc650dSSadaf Ebrahimi aaaaaaa 3685*22dc650dSSadaf Ebrahimi 0: aaaaaaa 3686*22dc650dSSadaf Ebrahimi 1: a 3687*22dc650dSSadaf Ebrahimi 2: aa 3688*22dc650dSSadaf Ebrahimi 3: aaa 3689*22dc650dSSadaf Ebrahimi 4: a 3690*22dc650dSSadaf Ebrahimi aaaaaaaaaa 3691*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaa 3692*22dc650dSSadaf Ebrahimi 1: a 3693*22dc650dSSadaf Ebrahimi 2: aa 3694*22dc650dSSadaf Ebrahimi 3: aaa 3695*22dc650dSSadaf Ebrahimi 4: aaaa 3696*22dc650dSSadaf Ebrahimi\= Expect no match 3697*22dc650dSSadaf Ebrahimi a 3698*22dc650dSSadaf EbrahimiNo match 3699*22dc650dSSadaf Ebrahimi aa 3700*22dc650dSSadaf EbrahimiNo match 3701*22dc650dSSadaf Ebrahimi aaa 3702*22dc650dSSadaf EbrahimiNo match 3703*22dc650dSSadaf Ebrahimi aaaaaaaa 3704*22dc650dSSadaf EbrahimiNo match 3705*22dc650dSSadaf Ebrahimi aaaaaaaaa 3706*22dc650dSSadaf EbrahimiNo match 3707*22dc650dSSadaf Ebrahimi aaaaaaaaaaa 3708*22dc650dSSadaf EbrahimiNo match 3709*22dc650dSSadaf Ebrahimi aaaaaaaaaaaa 3710*22dc650dSSadaf EbrahimiNo match 3711*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaa 3712*22dc650dSSadaf EbrahimiNo match 3713*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaa 3714*22dc650dSSadaf EbrahimiNo match 3715*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaa 3716*22dc650dSSadaf EbrahimiNo match 3717*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaa 3718*22dc650dSSadaf EbrahimiNo match 3719*22dc650dSSadaf Ebrahimi 3720*22dc650dSSadaf Ebrahimi# The following tests are taken from the Perl 5.005 test suite; some of them 3721*22dc650dSSadaf Ebrahimi# are compatible with 5.004, but I'd rather not have to sort them out. 3722*22dc650dSSadaf Ebrahimi 3723*22dc650dSSadaf Ebrahimi/abc/ 3724*22dc650dSSadaf Ebrahimi abc 3725*22dc650dSSadaf Ebrahimi 0: abc 3726*22dc650dSSadaf Ebrahimi xabcy 3727*22dc650dSSadaf Ebrahimi 0: abc 3728*22dc650dSSadaf Ebrahimi ababc 3729*22dc650dSSadaf Ebrahimi 0: abc 3730*22dc650dSSadaf Ebrahimi\= Expect no match 3731*22dc650dSSadaf Ebrahimi xbc 3732*22dc650dSSadaf EbrahimiNo match 3733*22dc650dSSadaf Ebrahimi axc 3734*22dc650dSSadaf EbrahimiNo match 3735*22dc650dSSadaf Ebrahimi abx 3736*22dc650dSSadaf EbrahimiNo match 3737*22dc650dSSadaf Ebrahimi 3738*22dc650dSSadaf Ebrahimi/ab*c/ 3739*22dc650dSSadaf Ebrahimi abc 3740*22dc650dSSadaf Ebrahimi 0: abc 3741*22dc650dSSadaf Ebrahimi 3742*22dc650dSSadaf Ebrahimi/ab*bc/ 3743*22dc650dSSadaf Ebrahimi abc 3744*22dc650dSSadaf Ebrahimi 0: abc 3745*22dc650dSSadaf Ebrahimi abbc 3746*22dc650dSSadaf Ebrahimi 0: abbc 3747*22dc650dSSadaf Ebrahimi abbbbc 3748*22dc650dSSadaf Ebrahimi 0: abbbbc 3749*22dc650dSSadaf Ebrahimi 3750*22dc650dSSadaf Ebrahimi/.{1}/ 3751*22dc650dSSadaf Ebrahimi abbbbc 3752*22dc650dSSadaf Ebrahimi 0: a 3753*22dc650dSSadaf Ebrahimi 3754*22dc650dSSadaf Ebrahimi/.{3,4}/ 3755*22dc650dSSadaf Ebrahimi abbbbc 3756*22dc650dSSadaf Ebrahimi 0: abbb 3757*22dc650dSSadaf Ebrahimi 3758*22dc650dSSadaf Ebrahimi/ab{0,}bc/ 3759*22dc650dSSadaf Ebrahimi abbbbc 3760*22dc650dSSadaf Ebrahimi 0: abbbbc 3761*22dc650dSSadaf Ebrahimi 3762*22dc650dSSadaf Ebrahimi/ab+bc/ 3763*22dc650dSSadaf Ebrahimi abbc 3764*22dc650dSSadaf Ebrahimi 0: abbc 3765*22dc650dSSadaf Ebrahimi\= Expect no match 3766*22dc650dSSadaf Ebrahimi abc 3767*22dc650dSSadaf EbrahimiNo match 3768*22dc650dSSadaf Ebrahimi abq 3769*22dc650dSSadaf EbrahimiNo match 3770*22dc650dSSadaf Ebrahimi 3771*22dc650dSSadaf Ebrahimi/ab{1,}bc/ 3772*22dc650dSSadaf Ebrahimi 3773*22dc650dSSadaf Ebrahimi/ab+bc/ 3774*22dc650dSSadaf Ebrahimi abbbbc 3775*22dc650dSSadaf Ebrahimi 0: abbbbc 3776*22dc650dSSadaf Ebrahimi 3777*22dc650dSSadaf Ebrahimi/ab{1,}bc/ 3778*22dc650dSSadaf Ebrahimi abbbbc 3779*22dc650dSSadaf Ebrahimi 0: abbbbc 3780*22dc650dSSadaf Ebrahimi 3781*22dc650dSSadaf Ebrahimi/ab{1,3}bc/ 3782*22dc650dSSadaf Ebrahimi abbbbc 3783*22dc650dSSadaf Ebrahimi 0: abbbbc 3784*22dc650dSSadaf Ebrahimi 3785*22dc650dSSadaf Ebrahimi/ab{3,4}bc/ 3786*22dc650dSSadaf Ebrahimi abbbbc 3787*22dc650dSSadaf Ebrahimi 0: abbbbc 3788*22dc650dSSadaf Ebrahimi 3789*22dc650dSSadaf Ebrahimi/ab{4,5}bc/ 3790*22dc650dSSadaf Ebrahimi\= Expect no match 3791*22dc650dSSadaf Ebrahimi abq 3792*22dc650dSSadaf EbrahimiNo match 3793*22dc650dSSadaf Ebrahimi abbbbc 3794*22dc650dSSadaf EbrahimiNo match 3795*22dc650dSSadaf Ebrahimi 3796*22dc650dSSadaf Ebrahimi/ab?bc/ 3797*22dc650dSSadaf Ebrahimi abbc 3798*22dc650dSSadaf Ebrahimi 0: abbc 3799*22dc650dSSadaf Ebrahimi abc 3800*22dc650dSSadaf Ebrahimi 0: abc 3801*22dc650dSSadaf Ebrahimi 3802*22dc650dSSadaf Ebrahimi/ab{0,1}bc/ 3803*22dc650dSSadaf Ebrahimi abc 3804*22dc650dSSadaf Ebrahimi 0: abc 3805*22dc650dSSadaf Ebrahimi 3806*22dc650dSSadaf Ebrahimi/ab?bc/ 3807*22dc650dSSadaf Ebrahimi 3808*22dc650dSSadaf Ebrahimi/ab?c/ 3809*22dc650dSSadaf Ebrahimi abc 3810*22dc650dSSadaf Ebrahimi 0: abc 3811*22dc650dSSadaf Ebrahimi 3812*22dc650dSSadaf Ebrahimi/ab{0,1}c/ 3813*22dc650dSSadaf Ebrahimi abc 3814*22dc650dSSadaf Ebrahimi 0: abc 3815*22dc650dSSadaf Ebrahimi 3816*22dc650dSSadaf Ebrahimi/^abc$/ 3817*22dc650dSSadaf Ebrahimi abc 3818*22dc650dSSadaf Ebrahimi 0: abc 3819*22dc650dSSadaf Ebrahimi\= Expect no match 3820*22dc650dSSadaf Ebrahimi abbbbc 3821*22dc650dSSadaf EbrahimiNo match 3822*22dc650dSSadaf Ebrahimi abcc 3823*22dc650dSSadaf EbrahimiNo match 3824*22dc650dSSadaf Ebrahimi 3825*22dc650dSSadaf Ebrahimi/^abc/ 3826*22dc650dSSadaf Ebrahimi abcc 3827*22dc650dSSadaf Ebrahimi 0: abc 3828*22dc650dSSadaf Ebrahimi 3829*22dc650dSSadaf Ebrahimi/^abc$/ 3830*22dc650dSSadaf Ebrahimi 3831*22dc650dSSadaf Ebrahimi/abc$/ 3832*22dc650dSSadaf Ebrahimi aabc 3833*22dc650dSSadaf Ebrahimi 0: abc 3834*22dc650dSSadaf Ebrahimi\= Expect no match 3835*22dc650dSSadaf Ebrahimi aabcd 3836*22dc650dSSadaf EbrahimiNo match 3837*22dc650dSSadaf Ebrahimi 3838*22dc650dSSadaf Ebrahimi/^/ 3839*22dc650dSSadaf Ebrahimi abc 3840*22dc650dSSadaf Ebrahimi 0: 3841*22dc650dSSadaf Ebrahimi 3842*22dc650dSSadaf Ebrahimi/$/ 3843*22dc650dSSadaf Ebrahimi abc 3844*22dc650dSSadaf Ebrahimi 0: 3845*22dc650dSSadaf Ebrahimi 3846*22dc650dSSadaf Ebrahimi/a.c/ 3847*22dc650dSSadaf Ebrahimi abc 3848*22dc650dSSadaf Ebrahimi 0: abc 3849*22dc650dSSadaf Ebrahimi axc 3850*22dc650dSSadaf Ebrahimi 0: axc 3851*22dc650dSSadaf Ebrahimi 3852*22dc650dSSadaf Ebrahimi/a.*c/ 3853*22dc650dSSadaf Ebrahimi axyzc 3854*22dc650dSSadaf Ebrahimi 0: axyzc 3855*22dc650dSSadaf Ebrahimi 3856*22dc650dSSadaf Ebrahimi/a[bc]d/ 3857*22dc650dSSadaf Ebrahimi abd 3858*22dc650dSSadaf Ebrahimi 0: abd 3859*22dc650dSSadaf Ebrahimi\= Expect no match 3860*22dc650dSSadaf Ebrahimi axyzd 3861*22dc650dSSadaf EbrahimiNo match 3862*22dc650dSSadaf Ebrahimi abc 3863*22dc650dSSadaf EbrahimiNo match 3864*22dc650dSSadaf Ebrahimi 3865*22dc650dSSadaf Ebrahimi/a[b-d]e/ 3866*22dc650dSSadaf Ebrahimi ace 3867*22dc650dSSadaf Ebrahimi 0: ace 3868*22dc650dSSadaf Ebrahimi 3869*22dc650dSSadaf Ebrahimi/a[b-d]/ 3870*22dc650dSSadaf Ebrahimi aac 3871*22dc650dSSadaf Ebrahimi 0: ac 3872*22dc650dSSadaf Ebrahimi 3873*22dc650dSSadaf Ebrahimi/a[-b]/ 3874*22dc650dSSadaf Ebrahimi a- 3875*22dc650dSSadaf Ebrahimi 0: a- 3876*22dc650dSSadaf Ebrahimi 3877*22dc650dSSadaf Ebrahimi/a[b-]/ 3878*22dc650dSSadaf Ebrahimi a- 3879*22dc650dSSadaf Ebrahimi 0: a- 3880*22dc650dSSadaf Ebrahimi 3881*22dc650dSSadaf Ebrahimi/a]/ 3882*22dc650dSSadaf Ebrahimi a] 3883*22dc650dSSadaf Ebrahimi 0: a] 3884*22dc650dSSadaf Ebrahimi 3885*22dc650dSSadaf Ebrahimi/a[]]b/ 3886*22dc650dSSadaf Ebrahimi a]b 3887*22dc650dSSadaf Ebrahimi 0: a]b 3888*22dc650dSSadaf Ebrahimi 3889*22dc650dSSadaf Ebrahimi/a[^bc]d/ 3890*22dc650dSSadaf Ebrahimi aed 3891*22dc650dSSadaf Ebrahimi 0: aed 3892*22dc650dSSadaf Ebrahimi\= Expect no match 3893*22dc650dSSadaf Ebrahimi abd 3894*22dc650dSSadaf EbrahimiNo match 3895*22dc650dSSadaf Ebrahimi abd 3896*22dc650dSSadaf EbrahimiNo match 3897*22dc650dSSadaf Ebrahimi 3898*22dc650dSSadaf Ebrahimi/a[^-b]c/ 3899*22dc650dSSadaf Ebrahimi adc 3900*22dc650dSSadaf Ebrahimi 0: adc 3901*22dc650dSSadaf Ebrahimi 3902*22dc650dSSadaf Ebrahimi/a[^]b]c/ 3903*22dc650dSSadaf Ebrahimi adc 3904*22dc650dSSadaf Ebrahimi 0: adc 3905*22dc650dSSadaf Ebrahimi a-c 3906*22dc650dSSadaf Ebrahimi 0: a-c 3907*22dc650dSSadaf Ebrahimi\= Expect no match 3908*22dc650dSSadaf Ebrahimi a]c 3909*22dc650dSSadaf EbrahimiNo match 3910*22dc650dSSadaf Ebrahimi 3911*22dc650dSSadaf Ebrahimi/\ba\b/ 3912*22dc650dSSadaf Ebrahimi a- 3913*22dc650dSSadaf Ebrahimi 0: a 3914*22dc650dSSadaf Ebrahimi -a 3915*22dc650dSSadaf Ebrahimi 0: a 3916*22dc650dSSadaf Ebrahimi -a- 3917*22dc650dSSadaf Ebrahimi 0: a 3918*22dc650dSSadaf Ebrahimi 3919*22dc650dSSadaf Ebrahimi/\by\b/ 3920*22dc650dSSadaf Ebrahimi\= Expect no match 3921*22dc650dSSadaf Ebrahimi xy 3922*22dc650dSSadaf EbrahimiNo match 3923*22dc650dSSadaf Ebrahimi yz 3924*22dc650dSSadaf EbrahimiNo match 3925*22dc650dSSadaf Ebrahimi xyz 3926*22dc650dSSadaf EbrahimiNo match 3927*22dc650dSSadaf Ebrahimi 3928*22dc650dSSadaf Ebrahimi/\Ba\B/ 3929*22dc650dSSadaf Ebrahimi\= Expect no match 3930*22dc650dSSadaf Ebrahimi a- 3931*22dc650dSSadaf EbrahimiNo match 3932*22dc650dSSadaf Ebrahimi -a 3933*22dc650dSSadaf EbrahimiNo match 3934*22dc650dSSadaf Ebrahimi -a- 3935*22dc650dSSadaf EbrahimiNo match 3936*22dc650dSSadaf Ebrahimi 3937*22dc650dSSadaf Ebrahimi/\By\b/ 3938*22dc650dSSadaf Ebrahimi xy 3939*22dc650dSSadaf Ebrahimi 0: y 3940*22dc650dSSadaf Ebrahimi 3941*22dc650dSSadaf Ebrahimi/\by\B/ 3942*22dc650dSSadaf Ebrahimi yz 3943*22dc650dSSadaf Ebrahimi 0: y 3944*22dc650dSSadaf Ebrahimi 3945*22dc650dSSadaf Ebrahimi/\By\B/ 3946*22dc650dSSadaf Ebrahimi xyz 3947*22dc650dSSadaf Ebrahimi 0: y 3948*22dc650dSSadaf Ebrahimi 3949*22dc650dSSadaf Ebrahimi/\w/ 3950*22dc650dSSadaf Ebrahimi a 3951*22dc650dSSadaf Ebrahimi 0: a 3952*22dc650dSSadaf Ebrahimi 3953*22dc650dSSadaf Ebrahimi/\W/ 3954*22dc650dSSadaf Ebrahimi - 3955*22dc650dSSadaf Ebrahimi 0: - 3956*22dc650dSSadaf Ebrahimi\= Expect no match 3957*22dc650dSSadaf Ebrahimi a 3958*22dc650dSSadaf EbrahimiNo match 3959*22dc650dSSadaf Ebrahimi 3960*22dc650dSSadaf Ebrahimi/a\sb/ 3961*22dc650dSSadaf Ebrahimi a b 3962*22dc650dSSadaf Ebrahimi 0: a b 3963*22dc650dSSadaf Ebrahimi 3964*22dc650dSSadaf Ebrahimi/a\Sb/ 3965*22dc650dSSadaf Ebrahimi a-b 3966*22dc650dSSadaf Ebrahimi 0: a-b 3967*22dc650dSSadaf Ebrahimi\= Expect no match 3968*22dc650dSSadaf Ebrahimi a b 3969*22dc650dSSadaf EbrahimiNo match 3970*22dc650dSSadaf Ebrahimi 3971*22dc650dSSadaf Ebrahimi/\d/ 3972*22dc650dSSadaf Ebrahimi 1 3973*22dc650dSSadaf Ebrahimi 0: 1 3974*22dc650dSSadaf Ebrahimi 3975*22dc650dSSadaf Ebrahimi/\D/ 3976*22dc650dSSadaf Ebrahimi - 3977*22dc650dSSadaf Ebrahimi 0: - 3978*22dc650dSSadaf Ebrahimi\= Expect no match 3979*22dc650dSSadaf Ebrahimi 1 3980*22dc650dSSadaf EbrahimiNo match 3981*22dc650dSSadaf Ebrahimi 3982*22dc650dSSadaf Ebrahimi/[\w]/ 3983*22dc650dSSadaf Ebrahimi a 3984*22dc650dSSadaf Ebrahimi 0: a 3985*22dc650dSSadaf Ebrahimi 3986*22dc650dSSadaf Ebrahimi/[\W]/ 3987*22dc650dSSadaf Ebrahimi - 3988*22dc650dSSadaf Ebrahimi 0: - 3989*22dc650dSSadaf Ebrahimi\= Expect no match 3990*22dc650dSSadaf Ebrahimi a 3991*22dc650dSSadaf EbrahimiNo match 3992*22dc650dSSadaf Ebrahimi 3993*22dc650dSSadaf Ebrahimi/a[\s]b/ 3994*22dc650dSSadaf Ebrahimi a b 3995*22dc650dSSadaf Ebrahimi 0: a b 3996*22dc650dSSadaf Ebrahimi 3997*22dc650dSSadaf Ebrahimi/a[\S]b/ 3998*22dc650dSSadaf Ebrahimi a-b 3999*22dc650dSSadaf Ebrahimi 0: a-b 4000*22dc650dSSadaf Ebrahimi\= Expect no match 4001*22dc650dSSadaf Ebrahimi a b 4002*22dc650dSSadaf EbrahimiNo match 4003*22dc650dSSadaf Ebrahimi 4004*22dc650dSSadaf Ebrahimi/[\d]/ 4005*22dc650dSSadaf Ebrahimi 1 4006*22dc650dSSadaf Ebrahimi 0: 1 4007*22dc650dSSadaf Ebrahimi 4008*22dc650dSSadaf Ebrahimi/[\D]/ 4009*22dc650dSSadaf Ebrahimi - 4010*22dc650dSSadaf Ebrahimi 0: - 4011*22dc650dSSadaf Ebrahimi\= Expect no match 4012*22dc650dSSadaf Ebrahimi 1 4013*22dc650dSSadaf EbrahimiNo match 4014*22dc650dSSadaf Ebrahimi 4015*22dc650dSSadaf Ebrahimi/ab|cd/ 4016*22dc650dSSadaf Ebrahimi abc 4017*22dc650dSSadaf Ebrahimi 0: ab 4018*22dc650dSSadaf Ebrahimi abcd 4019*22dc650dSSadaf Ebrahimi 0: ab 4020*22dc650dSSadaf Ebrahimi 4021*22dc650dSSadaf Ebrahimi/()ef/ 4022*22dc650dSSadaf Ebrahimi def 4023*22dc650dSSadaf Ebrahimi 0: ef 4024*22dc650dSSadaf Ebrahimi 1: 4025*22dc650dSSadaf Ebrahimi 4026*22dc650dSSadaf Ebrahimi/$b/ 4027*22dc650dSSadaf Ebrahimi 4028*22dc650dSSadaf Ebrahimi/a\(b/ 4029*22dc650dSSadaf Ebrahimi a(b 4030*22dc650dSSadaf Ebrahimi 0: a(b 4031*22dc650dSSadaf Ebrahimi 4032*22dc650dSSadaf Ebrahimi/a\(*b/ 4033*22dc650dSSadaf Ebrahimi ab 4034*22dc650dSSadaf Ebrahimi 0: ab 4035*22dc650dSSadaf Ebrahimi a((b 4036*22dc650dSSadaf Ebrahimi 0: a((b 4037*22dc650dSSadaf Ebrahimi 4038*22dc650dSSadaf Ebrahimi/a\\b/ 4039*22dc650dSSadaf Ebrahimi a\\b 4040*22dc650dSSadaf Ebrahimi 0: a\b 4041*22dc650dSSadaf Ebrahimi 4042*22dc650dSSadaf Ebrahimi/((a))/ 4043*22dc650dSSadaf Ebrahimi abc 4044*22dc650dSSadaf Ebrahimi 0: a 4045*22dc650dSSadaf Ebrahimi 1: a 4046*22dc650dSSadaf Ebrahimi 2: a 4047*22dc650dSSadaf Ebrahimi 4048*22dc650dSSadaf Ebrahimi/(a)b(c)/ 4049*22dc650dSSadaf Ebrahimi abc 4050*22dc650dSSadaf Ebrahimi 0: abc 4051*22dc650dSSadaf Ebrahimi 1: a 4052*22dc650dSSadaf Ebrahimi 2: c 4053*22dc650dSSadaf Ebrahimi 4054*22dc650dSSadaf Ebrahimi/a+b+c/ 4055*22dc650dSSadaf Ebrahimi aabbabc 4056*22dc650dSSadaf Ebrahimi 0: abc 4057*22dc650dSSadaf Ebrahimi 4058*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/ 4059*22dc650dSSadaf Ebrahimi aabbabc 4060*22dc650dSSadaf Ebrahimi 0: abc 4061*22dc650dSSadaf Ebrahimi 4062*22dc650dSSadaf Ebrahimi/a.+?c/ 4063*22dc650dSSadaf Ebrahimi abcabc 4064*22dc650dSSadaf Ebrahimi 0: abc 4065*22dc650dSSadaf Ebrahimi 4066*22dc650dSSadaf Ebrahimi/(a+|b)*/ 4067*22dc650dSSadaf Ebrahimi ab 4068*22dc650dSSadaf Ebrahimi 0: ab 4069*22dc650dSSadaf Ebrahimi 1: b 4070*22dc650dSSadaf Ebrahimi 4071*22dc650dSSadaf Ebrahimi/(a+|b){0,}/ 4072*22dc650dSSadaf Ebrahimi ab 4073*22dc650dSSadaf Ebrahimi 0: ab 4074*22dc650dSSadaf Ebrahimi 1: b 4075*22dc650dSSadaf Ebrahimi 4076*22dc650dSSadaf Ebrahimi/(a+|b)+/ 4077*22dc650dSSadaf Ebrahimi ab 4078*22dc650dSSadaf Ebrahimi 0: ab 4079*22dc650dSSadaf Ebrahimi 1: b 4080*22dc650dSSadaf Ebrahimi 4081*22dc650dSSadaf Ebrahimi/(a+|b){1,}/ 4082*22dc650dSSadaf Ebrahimi ab 4083*22dc650dSSadaf Ebrahimi 0: ab 4084*22dc650dSSadaf Ebrahimi 1: b 4085*22dc650dSSadaf Ebrahimi 4086*22dc650dSSadaf Ebrahimi/(a+|b)?/ 4087*22dc650dSSadaf Ebrahimi ab 4088*22dc650dSSadaf Ebrahimi 0: a 4089*22dc650dSSadaf Ebrahimi 1: a 4090*22dc650dSSadaf Ebrahimi 4091*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/ 4092*22dc650dSSadaf Ebrahimi ab 4093*22dc650dSSadaf Ebrahimi 0: a 4094*22dc650dSSadaf Ebrahimi 1: a 4095*22dc650dSSadaf Ebrahimi 4096*22dc650dSSadaf Ebrahimi/[^ab]*/ 4097*22dc650dSSadaf Ebrahimi cde 4098*22dc650dSSadaf Ebrahimi 0: cde 4099*22dc650dSSadaf Ebrahimi 4100*22dc650dSSadaf Ebrahimi/abc/ 4101*22dc650dSSadaf Ebrahimi\= Expect no match 4102*22dc650dSSadaf Ebrahimi b 4103*22dc650dSSadaf EbrahimiNo match 4104*22dc650dSSadaf Ebrahimi 4105*22dc650dSSadaf Ebrahimi/a*/ 4106*22dc650dSSadaf Ebrahimi \ 4107*22dc650dSSadaf Ebrahimi 0: 4108*22dc650dSSadaf Ebrahimi 4109*22dc650dSSadaf Ebrahimi/([abc])*d/ 4110*22dc650dSSadaf Ebrahimi abbbcd 4111*22dc650dSSadaf Ebrahimi 0: abbbcd 4112*22dc650dSSadaf Ebrahimi 1: c 4113*22dc650dSSadaf Ebrahimi 4114*22dc650dSSadaf Ebrahimi/([abc])*bcd/ 4115*22dc650dSSadaf Ebrahimi abcd 4116*22dc650dSSadaf Ebrahimi 0: abcd 4117*22dc650dSSadaf Ebrahimi 1: a 4118*22dc650dSSadaf Ebrahimi 4119*22dc650dSSadaf Ebrahimi/a|b|c|d|e/ 4120*22dc650dSSadaf Ebrahimi e 4121*22dc650dSSadaf Ebrahimi 0: e 4122*22dc650dSSadaf Ebrahimi 4123*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/ 4124*22dc650dSSadaf Ebrahimi ef 4125*22dc650dSSadaf Ebrahimi 0: ef 4126*22dc650dSSadaf Ebrahimi 1: e 4127*22dc650dSSadaf Ebrahimi 4128*22dc650dSSadaf Ebrahimi/abcd*efg/ 4129*22dc650dSSadaf Ebrahimi abcdefg 4130*22dc650dSSadaf Ebrahimi 0: abcdefg 4131*22dc650dSSadaf Ebrahimi 4132*22dc650dSSadaf Ebrahimi/ab*/ 4133*22dc650dSSadaf Ebrahimi xabyabbbz 4134*22dc650dSSadaf Ebrahimi 0: ab 4135*22dc650dSSadaf Ebrahimi xayabbbz 4136*22dc650dSSadaf Ebrahimi 0: a 4137*22dc650dSSadaf Ebrahimi 4138*22dc650dSSadaf Ebrahimi/(ab|cd)e/ 4139*22dc650dSSadaf Ebrahimi abcde 4140*22dc650dSSadaf Ebrahimi 0: cde 4141*22dc650dSSadaf Ebrahimi 1: cd 4142*22dc650dSSadaf Ebrahimi 4143*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/ 4144*22dc650dSSadaf Ebrahimi hij 4145*22dc650dSSadaf Ebrahimi 0: hij 4146*22dc650dSSadaf Ebrahimi 4147*22dc650dSSadaf Ebrahimi/^(ab|cd)e/ 4148*22dc650dSSadaf Ebrahimi 4149*22dc650dSSadaf Ebrahimi/(abc|)ef/ 4150*22dc650dSSadaf Ebrahimi abcdef 4151*22dc650dSSadaf Ebrahimi 0: ef 4152*22dc650dSSadaf Ebrahimi 1: 4153*22dc650dSSadaf Ebrahimi 4154*22dc650dSSadaf Ebrahimi/(a|b)c*d/ 4155*22dc650dSSadaf Ebrahimi abcd 4156*22dc650dSSadaf Ebrahimi 0: bcd 4157*22dc650dSSadaf Ebrahimi 1: b 4158*22dc650dSSadaf Ebrahimi 4159*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/ 4160*22dc650dSSadaf Ebrahimi abc 4161*22dc650dSSadaf Ebrahimi 0: abc 4162*22dc650dSSadaf Ebrahimi 1: a 4163*22dc650dSSadaf Ebrahimi 4164*22dc650dSSadaf Ebrahimi/a([bc]*)c*/ 4165*22dc650dSSadaf Ebrahimi abc 4166*22dc650dSSadaf Ebrahimi 0: abc 4167*22dc650dSSadaf Ebrahimi 1: bc 4168*22dc650dSSadaf Ebrahimi 4169*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/ 4170*22dc650dSSadaf Ebrahimi abcd 4171*22dc650dSSadaf Ebrahimi 0: abcd 4172*22dc650dSSadaf Ebrahimi 1: bc 4173*22dc650dSSadaf Ebrahimi 2: d 4174*22dc650dSSadaf Ebrahimi 4175*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/ 4176*22dc650dSSadaf Ebrahimi abcd 4177*22dc650dSSadaf Ebrahimi 0: abcd 4178*22dc650dSSadaf Ebrahimi 1: bc 4179*22dc650dSSadaf Ebrahimi 2: d 4180*22dc650dSSadaf Ebrahimi 4181*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/ 4182*22dc650dSSadaf Ebrahimi abcd 4183*22dc650dSSadaf Ebrahimi 0: abcd 4184*22dc650dSSadaf Ebrahimi 1: b 4185*22dc650dSSadaf Ebrahimi 2: cd 4186*22dc650dSSadaf Ebrahimi 4187*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/ 4188*22dc650dSSadaf Ebrahimi adcdcde 4189*22dc650dSSadaf Ebrahimi 0: adcdcde 4190*22dc650dSSadaf Ebrahimi 4191*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/ 4192*22dc650dSSadaf Ebrahimi\= Expect no match 4193*22dc650dSSadaf Ebrahimi abcde 4194*22dc650dSSadaf EbrahimiNo match 4195*22dc650dSSadaf Ebrahimi adcdcde 4196*22dc650dSSadaf EbrahimiNo match 4197*22dc650dSSadaf Ebrahimi 4198*22dc650dSSadaf Ebrahimi/(ab|a)b*c/ 4199*22dc650dSSadaf Ebrahimi abc 4200*22dc650dSSadaf Ebrahimi 0: abc 4201*22dc650dSSadaf Ebrahimi 1: ab 4202*22dc650dSSadaf Ebrahimi 4203*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/ 4204*22dc650dSSadaf Ebrahimi abcd 4205*22dc650dSSadaf Ebrahimi 0: abcd 4206*22dc650dSSadaf Ebrahimi 1: abc 4207*22dc650dSSadaf Ebrahimi 2: a 4208*22dc650dSSadaf Ebrahimi 3: b 4209*22dc650dSSadaf Ebrahimi 4: d 4210*22dc650dSSadaf Ebrahimi 4211*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/ 4212*22dc650dSSadaf Ebrahimi alpha 4213*22dc650dSSadaf Ebrahimi 0: alpha 4214*22dc650dSSadaf Ebrahimi 4215*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/ 4216*22dc650dSSadaf Ebrahimi abh 4217*22dc650dSSadaf Ebrahimi 0: bh 4218*22dc650dSSadaf Ebrahimi 4219*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/ 4220*22dc650dSSadaf Ebrahimi effgz 4221*22dc650dSSadaf Ebrahimi 0: effgz 4222*22dc650dSSadaf Ebrahimi 1: effgz 4223*22dc650dSSadaf Ebrahimi ij 4224*22dc650dSSadaf Ebrahimi 0: ij 4225*22dc650dSSadaf Ebrahimi 1: ij 4226*22dc650dSSadaf Ebrahimi 2: j 4227*22dc650dSSadaf Ebrahimi reffgz 4228*22dc650dSSadaf Ebrahimi 0: effgz 4229*22dc650dSSadaf Ebrahimi 1: effgz 4230*22dc650dSSadaf Ebrahimi\= Expect no match 4231*22dc650dSSadaf Ebrahimi effg 4232*22dc650dSSadaf EbrahimiNo match 4233*22dc650dSSadaf Ebrahimi bcdd 4234*22dc650dSSadaf EbrahimiNo match 4235*22dc650dSSadaf Ebrahimi 4236*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/ 4237*22dc650dSSadaf Ebrahimi a 4238*22dc650dSSadaf Ebrahimi 0: a 4239*22dc650dSSadaf Ebrahimi 1: a 4240*22dc650dSSadaf Ebrahimi 2: a 4241*22dc650dSSadaf Ebrahimi 3: a 4242*22dc650dSSadaf Ebrahimi 4: a 4243*22dc650dSSadaf Ebrahimi 5: a 4244*22dc650dSSadaf Ebrahimi 6: a 4245*22dc650dSSadaf Ebrahimi 7: a 4246*22dc650dSSadaf Ebrahimi 8: a 4247*22dc650dSSadaf Ebrahimi 9: a 4248*22dc650dSSadaf Ebrahimi10: a 4249*22dc650dSSadaf Ebrahimi 4250*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))\10/ 4251*22dc650dSSadaf Ebrahimi aa 4252*22dc650dSSadaf Ebrahimi 0: aa 4253*22dc650dSSadaf Ebrahimi 1: a 4254*22dc650dSSadaf Ebrahimi 2: a 4255*22dc650dSSadaf Ebrahimi 3: a 4256*22dc650dSSadaf Ebrahimi 4: a 4257*22dc650dSSadaf Ebrahimi 5: a 4258*22dc650dSSadaf Ebrahimi 6: a 4259*22dc650dSSadaf Ebrahimi 7: a 4260*22dc650dSSadaf Ebrahimi 8: a 4261*22dc650dSSadaf Ebrahimi 9: a 4262*22dc650dSSadaf Ebrahimi10: a 4263*22dc650dSSadaf Ebrahimi 4264*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/ 4265*22dc650dSSadaf Ebrahimi a 4266*22dc650dSSadaf Ebrahimi 0: a 4267*22dc650dSSadaf Ebrahimi 1: a 4268*22dc650dSSadaf Ebrahimi 2: a 4269*22dc650dSSadaf Ebrahimi 3: a 4270*22dc650dSSadaf Ebrahimi 4: a 4271*22dc650dSSadaf Ebrahimi 5: a 4272*22dc650dSSadaf Ebrahimi 6: a 4273*22dc650dSSadaf Ebrahimi 7: a 4274*22dc650dSSadaf Ebrahimi 8: a 4275*22dc650dSSadaf Ebrahimi 9: a 4276*22dc650dSSadaf Ebrahimi 4277*22dc650dSSadaf Ebrahimi/multiple words of text/ 4278*22dc650dSSadaf Ebrahimi\= Expect no match 4279*22dc650dSSadaf Ebrahimi aa 4280*22dc650dSSadaf EbrahimiNo match 4281*22dc650dSSadaf Ebrahimi uh-uh 4282*22dc650dSSadaf EbrahimiNo match 4283*22dc650dSSadaf Ebrahimi 4284*22dc650dSSadaf Ebrahimi/multiple words/ 4285*22dc650dSSadaf Ebrahimi multiple words, yeah 4286*22dc650dSSadaf Ebrahimi 0: multiple words 4287*22dc650dSSadaf Ebrahimi 4288*22dc650dSSadaf Ebrahimi/(.*)c(.*)/ 4289*22dc650dSSadaf Ebrahimi abcde 4290*22dc650dSSadaf Ebrahimi 0: abcde 4291*22dc650dSSadaf Ebrahimi 1: ab 4292*22dc650dSSadaf Ebrahimi 2: de 4293*22dc650dSSadaf Ebrahimi 4294*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/ 4295*22dc650dSSadaf Ebrahimi (a, b) 4296*22dc650dSSadaf Ebrahimi 0: (a, b) 4297*22dc650dSSadaf Ebrahimi 1: a 4298*22dc650dSSadaf Ebrahimi 2: b 4299*22dc650dSSadaf Ebrahimi 4300*22dc650dSSadaf Ebrahimi/[k]/ 4301*22dc650dSSadaf Ebrahimi 4302*22dc650dSSadaf Ebrahimi/abcd/ 4303*22dc650dSSadaf Ebrahimi abcd 4304*22dc650dSSadaf Ebrahimi 0: abcd 4305*22dc650dSSadaf Ebrahimi 4306*22dc650dSSadaf Ebrahimi/a(bc)d/ 4307*22dc650dSSadaf Ebrahimi abcd 4308*22dc650dSSadaf Ebrahimi 0: abcd 4309*22dc650dSSadaf Ebrahimi 1: bc 4310*22dc650dSSadaf Ebrahimi 4311*22dc650dSSadaf Ebrahimi/a[-]?c/ 4312*22dc650dSSadaf Ebrahimi ac 4313*22dc650dSSadaf Ebrahimi 0: ac 4314*22dc650dSSadaf Ebrahimi 4315*22dc650dSSadaf Ebrahimi/(abc)\1/ 4316*22dc650dSSadaf Ebrahimi abcabc 4317*22dc650dSSadaf Ebrahimi 0: abcabc 4318*22dc650dSSadaf Ebrahimi 1: abc 4319*22dc650dSSadaf Ebrahimi 4320*22dc650dSSadaf Ebrahimi/([a-c]*)\1/ 4321*22dc650dSSadaf Ebrahimi abcabc 4322*22dc650dSSadaf Ebrahimi 0: abcabc 4323*22dc650dSSadaf Ebrahimi 1: abc 4324*22dc650dSSadaf Ebrahimi 4325*22dc650dSSadaf Ebrahimi/(a)|\1/ 4326*22dc650dSSadaf Ebrahimi a 4327*22dc650dSSadaf Ebrahimi 0: a 4328*22dc650dSSadaf Ebrahimi 1: a 4329*22dc650dSSadaf Ebrahimi ab 4330*22dc650dSSadaf Ebrahimi 0: a 4331*22dc650dSSadaf Ebrahimi 1: a 4332*22dc650dSSadaf Ebrahimi\= Expect no match 4333*22dc650dSSadaf Ebrahimi x 4334*22dc650dSSadaf EbrahimiNo match 4335*22dc650dSSadaf Ebrahimi 4336*22dc650dSSadaf Ebrahimi/(([a-c])b*?\2)*/ 4337*22dc650dSSadaf Ebrahimi ababbbcbc 4338*22dc650dSSadaf Ebrahimi 0: ababb 4339*22dc650dSSadaf Ebrahimi 1: bb 4340*22dc650dSSadaf Ebrahimi 2: b 4341*22dc650dSSadaf Ebrahimi 4342*22dc650dSSadaf Ebrahimi/(([a-c])b*?\2){3}/ 4343*22dc650dSSadaf Ebrahimi ababbbcbc 4344*22dc650dSSadaf Ebrahimi 0: ababbbcbc 4345*22dc650dSSadaf Ebrahimi 1: cbc 4346*22dc650dSSadaf Ebrahimi 2: c 4347*22dc650dSSadaf Ebrahimi 4348*22dc650dSSadaf Ebrahimi/((\3|b)\2(a)x)+/ 4349*22dc650dSSadaf Ebrahimi aaaxabaxbaaxbbax 4350*22dc650dSSadaf Ebrahimi 0: bbax 4351*22dc650dSSadaf Ebrahimi 1: bbax 4352*22dc650dSSadaf Ebrahimi 2: b 4353*22dc650dSSadaf Ebrahimi 3: a 4354*22dc650dSSadaf Ebrahimi 4355*22dc650dSSadaf Ebrahimi/((\3|b)\2(a)){2,}/ 4356*22dc650dSSadaf Ebrahimi bbaababbabaaaaabbaaaabba 4357*22dc650dSSadaf Ebrahimi 0: bbaaaabba 4358*22dc650dSSadaf Ebrahimi 1: bba 4359*22dc650dSSadaf Ebrahimi 2: b 4360*22dc650dSSadaf Ebrahimi 3: a 4361*22dc650dSSadaf Ebrahimi 4362*22dc650dSSadaf Ebrahimi/abc/i 4363*22dc650dSSadaf Ebrahimi ABC 4364*22dc650dSSadaf Ebrahimi 0: ABC 4365*22dc650dSSadaf Ebrahimi XABCY 4366*22dc650dSSadaf Ebrahimi 0: ABC 4367*22dc650dSSadaf Ebrahimi ABABC 4368*22dc650dSSadaf Ebrahimi 0: ABC 4369*22dc650dSSadaf Ebrahimi\= Expect no match 4370*22dc650dSSadaf Ebrahimi aaxabxbaxbbx 4371*22dc650dSSadaf EbrahimiNo match 4372*22dc650dSSadaf Ebrahimi XBC 4373*22dc650dSSadaf EbrahimiNo match 4374*22dc650dSSadaf Ebrahimi AXC 4375*22dc650dSSadaf EbrahimiNo match 4376*22dc650dSSadaf Ebrahimi ABX 4377*22dc650dSSadaf EbrahimiNo match 4378*22dc650dSSadaf Ebrahimi 4379*22dc650dSSadaf Ebrahimi/ab*c/i 4380*22dc650dSSadaf Ebrahimi ABC 4381*22dc650dSSadaf Ebrahimi 0: ABC 4382*22dc650dSSadaf Ebrahimi 4383*22dc650dSSadaf Ebrahimi/ab*bc/i 4384*22dc650dSSadaf Ebrahimi ABC 4385*22dc650dSSadaf Ebrahimi 0: ABC 4386*22dc650dSSadaf Ebrahimi ABBC 4387*22dc650dSSadaf Ebrahimi 0: ABBC 4388*22dc650dSSadaf Ebrahimi 4389*22dc650dSSadaf Ebrahimi/ab*?bc/i 4390*22dc650dSSadaf Ebrahimi ABBBBC 4391*22dc650dSSadaf Ebrahimi 0: ABBBBC 4392*22dc650dSSadaf Ebrahimi 4393*22dc650dSSadaf Ebrahimi/ab{0,}?bc/i 4394*22dc650dSSadaf Ebrahimi ABBBBC 4395*22dc650dSSadaf Ebrahimi 0: ABBBBC 4396*22dc650dSSadaf Ebrahimi 4397*22dc650dSSadaf Ebrahimi/ab+?bc/i 4398*22dc650dSSadaf Ebrahimi ABBC 4399*22dc650dSSadaf Ebrahimi 0: ABBC 4400*22dc650dSSadaf Ebrahimi 4401*22dc650dSSadaf Ebrahimi/ab+bc/i 4402*22dc650dSSadaf Ebrahimi\= Expect no match 4403*22dc650dSSadaf Ebrahimi ABC 4404*22dc650dSSadaf EbrahimiNo match 4405*22dc650dSSadaf Ebrahimi ABQ 4406*22dc650dSSadaf EbrahimiNo match 4407*22dc650dSSadaf Ebrahimi 4408*22dc650dSSadaf Ebrahimi/ab{1,}bc/i 4409*22dc650dSSadaf Ebrahimi 4410*22dc650dSSadaf Ebrahimi/ab+bc/i 4411*22dc650dSSadaf Ebrahimi ABBBBC 4412*22dc650dSSadaf Ebrahimi 0: ABBBBC 4413*22dc650dSSadaf Ebrahimi 4414*22dc650dSSadaf Ebrahimi/ab{1,}?bc/i 4415*22dc650dSSadaf Ebrahimi ABBBBC 4416*22dc650dSSadaf Ebrahimi 0: ABBBBC 4417*22dc650dSSadaf Ebrahimi 4418*22dc650dSSadaf Ebrahimi/ab{1,3}?bc/i 4419*22dc650dSSadaf Ebrahimi ABBBBC 4420*22dc650dSSadaf Ebrahimi 0: ABBBBC 4421*22dc650dSSadaf Ebrahimi 4422*22dc650dSSadaf Ebrahimi/ab{3,4}?bc/i 4423*22dc650dSSadaf Ebrahimi ABBBBC 4424*22dc650dSSadaf Ebrahimi 0: ABBBBC 4425*22dc650dSSadaf Ebrahimi 4426*22dc650dSSadaf Ebrahimi/ab{4,5}?bc/i 4427*22dc650dSSadaf Ebrahimi\= Expect no match 4428*22dc650dSSadaf Ebrahimi ABQ 4429*22dc650dSSadaf EbrahimiNo match 4430*22dc650dSSadaf Ebrahimi ABBBBC 4431*22dc650dSSadaf EbrahimiNo match 4432*22dc650dSSadaf Ebrahimi 4433*22dc650dSSadaf Ebrahimi/ab??bc/i 4434*22dc650dSSadaf Ebrahimi ABBC 4435*22dc650dSSadaf Ebrahimi 0: ABBC 4436*22dc650dSSadaf Ebrahimi ABC 4437*22dc650dSSadaf Ebrahimi 0: ABC 4438*22dc650dSSadaf Ebrahimi 4439*22dc650dSSadaf Ebrahimi/ab{0,1}?bc/i 4440*22dc650dSSadaf Ebrahimi ABC 4441*22dc650dSSadaf Ebrahimi 0: ABC 4442*22dc650dSSadaf Ebrahimi 4443*22dc650dSSadaf Ebrahimi/ab??bc/i 4444*22dc650dSSadaf Ebrahimi 4445*22dc650dSSadaf Ebrahimi/ab??c/i 4446*22dc650dSSadaf Ebrahimi ABC 4447*22dc650dSSadaf Ebrahimi 0: ABC 4448*22dc650dSSadaf Ebrahimi 4449*22dc650dSSadaf Ebrahimi/ab{0,1}?c/i 4450*22dc650dSSadaf Ebrahimi ABC 4451*22dc650dSSadaf Ebrahimi 0: ABC 4452*22dc650dSSadaf Ebrahimi 4453*22dc650dSSadaf Ebrahimi/^abc$/i 4454*22dc650dSSadaf Ebrahimi ABC 4455*22dc650dSSadaf Ebrahimi 0: ABC 4456*22dc650dSSadaf Ebrahimi\= Expect no match 4457*22dc650dSSadaf Ebrahimi ABBBBC 4458*22dc650dSSadaf EbrahimiNo match 4459*22dc650dSSadaf Ebrahimi ABCC 4460*22dc650dSSadaf EbrahimiNo match 4461*22dc650dSSadaf Ebrahimi 4462*22dc650dSSadaf Ebrahimi/^abc/i 4463*22dc650dSSadaf Ebrahimi ABCC 4464*22dc650dSSadaf Ebrahimi 0: ABC 4465*22dc650dSSadaf Ebrahimi 4466*22dc650dSSadaf Ebrahimi/^abc$/i 4467*22dc650dSSadaf Ebrahimi 4468*22dc650dSSadaf Ebrahimi/abc$/i 4469*22dc650dSSadaf Ebrahimi AABC 4470*22dc650dSSadaf Ebrahimi 0: ABC 4471*22dc650dSSadaf Ebrahimi 4472*22dc650dSSadaf Ebrahimi/^/i 4473*22dc650dSSadaf Ebrahimi ABC 4474*22dc650dSSadaf Ebrahimi 0: 4475*22dc650dSSadaf Ebrahimi 4476*22dc650dSSadaf Ebrahimi/$/i 4477*22dc650dSSadaf Ebrahimi ABC 4478*22dc650dSSadaf Ebrahimi 0: 4479*22dc650dSSadaf Ebrahimi 4480*22dc650dSSadaf Ebrahimi/a.c/i 4481*22dc650dSSadaf Ebrahimi ABC 4482*22dc650dSSadaf Ebrahimi 0: ABC 4483*22dc650dSSadaf Ebrahimi AXC 4484*22dc650dSSadaf Ebrahimi 0: AXC 4485*22dc650dSSadaf Ebrahimi 4486*22dc650dSSadaf Ebrahimi/a.*?c/i 4487*22dc650dSSadaf Ebrahimi AXYZC 4488*22dc650dSSadaf Ebrahimi 0: AXYZC 4489*22dc650dSSadaf Ebrahimi 4490*22dc650dSSadaf Ebrahimi/a.*c/i 4491*22dc650dSSadaf Ebrahimi AABC 4492*22dc650dSSadaf Ebrahimi 0: AABC 4493*22dc650dSSadaf Ebrahimi\= Expect no match 4494*22dc650dSSadaf Ebrahimi AXYZD 4495*22dc650dSSadaf EbrahimiNo match 4496*22dc650dSSadaf Ebrahimi 4497*22dc650dSSadaf Ebrahimi/a[bc]d/i 4498*22dc650dSSadaf Ebrahimi ABD 4499*22dc650dSSadaf Ebrahimi 0: ABD 4500*22dc650dSSadaf Ebrahimi 4501*22dc650dSSadaf Ebrahimi/a[b-d]e/i 4502*22dc650dSSadaf Ebrahimi ACE 4503*22dc650dSSadaf Ebrahimi 0: ACE 4504*22dc650dSSadaf Ebrahimi\= Expect no match 4505*22dc650dSSadaf Ebrahimi ABC 4506*22dc650dSSadaf EbrahimiNo match 4507*22dc650dSSadaf Ebrahimi ABD 4508*22dc650dSSadaf EbrahimiNo match 4509*22dc650dSSadaf Ebrahimi 4510*22dc650dSSadaf Ebrahimi/a[b-d]/i 4511*22dc650dSSadaf Ebrahimi AAC 4512*22dc650dSSadaf Ebrahimi 0: AC 4513*22dc650dSSadaf Ebrahimi 4514*22dc650dSSadaf Ebrahimi/a[-b]/i 4515*22dc650dSSadaf Ebrahimi A- 4516*22dc650dSSadaf Ebrahimi 0: A- 4517*22dc650dSSadaf Ebrahimi 4518*22dc650dSSadaf Ebrahimi/a[b-]/i 4519*22dc650dSSadaf Ebrahimi A- 4520*22dc650dSSadaf Ebrahimi 0: A- 4521*22dc650dSSadaf Ebrahimi 4522*22dc650dSSadaf Ebrahimi/a]/i 4523*22dc650dSSadaf Ebrahimi A] 4524*22dc650dSSadaf Ebrahimi 0: A] 4525*22dc650dSSadaf Ebrahimi 4526*22dc650dSSadaf Ebrahimi/a[]]b/i 4527*22dc650dSSadaf Ebrahimi A]B 4528*22dc650dSSadaf Ebrahimi 0: A]B 4529*22dc650dSSadaf Ebrahimi 4530*22dc650dSSadaf Ebrahimi/a[^bc]d/i 4531*22dc650dSSadaf Ebrahimi AED 4532*22dc650dSSadaf Ebrahimi 0: AED 4533*22dc650dSSadaf Ebrahimi 4534*22dc650dSSadaf Ebrahimi/a[^-b]c/i 4535*22dc650dSSadaf Ebrahimi ADC 4536*22dc650dSSadaf Ebrahimi 0: ADC 4537*22dc650dSSadaf Ebrahimi\= Expect no match 4538*22dc650dSSadaf Ebrahimi ABD 4539*22dc650dSSadaf EbrahimiNo match 4540*22dc650dSSadaf Ebrahimi A-C 4541*22dc650dSSadaf EbrahimiNo match 4542*22dc650dSSadaf Ebrahimi 4543*22dc650dSSadaf Ebrahimi/a[^]b]c/i 4544*22dc650dSSadaf Ebrahimi ADC 4545*22dc650dSSadaf Ebrahimi 0: ADC 4546*22dc650dSSadaf Ebrahimi 4547*22dc650dSSadaf Ebrahimi/ab|cd/i 4548*22dc650dSSadaf Ebrahimi ABC 4549*22dc650dSSadaf Ebrahimi 0: AB 4550*22dc650dSSadaf Ebrahimi ABCD 4551*22dc650dSSadaf Ebrahimi 0: AB 4552*22dc650dSSadaf Ebrahimi 4553*22dc650dSSadaf Ebrahimi/()ef/i 4554*22dc650dSSadaf Ebrahimi DEF 4555*22dc650dSSadaf Ebrahimi 0: EF 4556*22dc650dSSadaf Ebrahimi 1: 4557*22dc650dSSadaf Ebrahimi 4558*22dc650dSSadaf Ebrahimi/$b/i 4559*22dc650dSSadaf Ebrahimi\= Expect no match 4560*22dc650dSSadaf Ebrahimi A]C 4561*22dc650dSSadaf EbrahimiNo match 4562*22dc650dSSadaf Ebrahimi B 4563*22dc650dSSadaf EbrahimiNo match 4564*22dc650dSSadaf Ebrahimi 4565*22dc650dSSadaf Ebrahimi/a\(b/i 4566*22dc650dSSadaf Ebrahimi A(B 4567*22dc650dSSadaf Ebrahimi 0: A(B 4568*22dc650dSSadaf Ebrahimi 4569*22dc650dSSadaf Ebrahimi/a\(*b/i 4570*22dc650dSSadaf Ebrahimi AB 4571*22dc650dSSadaf Ebrahimi 0: AB 4572*22dc650dSSadaf Ebrahimi A((B 4573*22dc650dSSadaf Ebrahimi 0: A((B 4574*22dc650dSSadaf Ebrahimi 4575*22dc650dSSadaf Ebrahimi/a\\b/i 4576*22dc650dSSadaf Ebrahimi A\\b 4577*22dc650dSSadaf Ebrahimi 0: A\b 4578*22dc650dSSadaf Ebrahimi a\\B 4579*22dc650dSSadaf Ebrahimi 0: a\B 4580*22dc650dSSadaf Ebrahimi 4581*22dc650dSSadaf Ebrahimi/((a))/i 4582*22dc650dSSadaf Ebrahimi ABC 4583*22dc650dSSadaf Ebrahimi 0: A 4584*22dc650dSSadaf Ebrahimi 1: A 4585*22dc650dSSadaf Ebrahimi 2: A 4586*22dc650dSSadaf Ebrahimi 4587*22dc650dSSadaf Ebrahimi/(a)b(c)/i 4588*22dc650dSSadaf Ebrahimi ABC 4589*22dc650dSSadaf Ebrahimi 0: ABC 4590*22dc650dSSadaf Ebrahimi 1: A 4591*22dc650dSSadaf Ebrahimi 2: C 4592*22dc650dSSadaf Ebrahimi 4593*22dc650dSSadaf Ebrahimi/a+b+c/i 4594*22dc650dSSadaf Ebrahimi AABBABC 4595*22dc650dSSadaf Ebrahimi 0: ABC 4596*22dc650dSSadaf Ebrahimi 4597*22dc650dSSadaf Ebrahimi/a{1,}b{1,}c/i 4598*22dc650dSSadaf Ebrahimi AABBABC 4599*22dc650dSSadaf Ebrahimi 0: ABC 4600*22dc650dSSadaf Ebrahimi 4601*22dc650dSSadaf Ebrahimi/a.+?c/i 4602*22dc650dSSadaf Ebrahimi ABCABC 4603*22dc650dSSadaf Ebrahimi 0: ABC 4604*22dc650dSSadaf Ebrahimi 4605*22dc650dSSadaf Ebrahimi/a.*?c/i 4606*22dc650dSSadaf Ebrahimi ABCABC 4607*22dc650dSSadaf Ebrahimi 0: ABC 4608*22dc650dSSadaf Ebrahimi 4609*22dc650dSSadaf Ebrahimi/a.{0,5}?c/i 4610*22dc650dSSadaf Ebrahimi ABCABC 4611*22dc650dSSadaf Ebrahimi 0: ABC 4612*22dc650dSSadaf Ebrahimi 4613*22dc650dSSadaf Ebrahimi/(a+|b)*/i 4614*22dc650dSSadaf Ebrahimi AB 4615*22dc650dSSadaf Ebrahimi 0: AB 4616*22dc650dSSadaf Ebrahimi 1: B 4617*22dc650dSSadaf Ebrahimi 4618*22dc650dSSadaf Ebrahimi/(a+|b){0,}/i 4619*22dc650dSSadaf Ebrahimi AB 4620*22dc650dSSadaf Ebrahimi 0: AB 4621*22dc650dSSadaf Ebrahimi 1: B 4622*22dc650dSSadaf Ebrahimi 4623*22dc650dSSadaf Ebrahimi/(a+|b)+/i 4624*22dc650dSSadaf Ebrahimi AB 4625*22dc650dSSadaf Ebrahimi 0: AB 4626*22dc650dSSadaf Ebrahimi 1: B 4627*22dc650dSSadaf Ebrahimi 4628*22dc650dSSadaf Ebrahimi/(a+|b){1,}/i 4629*22dc650dSSadaf Ebrahimi AB 4630*22dc650dSSadaf Ebrahimi 0: AB 4631*22dc650dSSadaf Ebrahimi 1: B 4632*22dc650dSSadaf Ebrahimi 4633*22dc650dSSadaf Ebrahimi/(a+|b)?/i 4634*22dc650dSSadaf Ebrahimi AB 4635*22dc650dSSadaf Ebrahimi 0: A 4636*22dc650dSSadaf Ebrahimi 1: A 4637*22dc650dSSadaf Ebrahimi 4638*22dc650dSSadaf Ebrahimi/(a+|b){0,1}/i 4639*22dc650dSSadaf Ebrahimi AB 4640*22dc650dSSadaf Ebrahimi 0: A 4641*22dc650dSSadaf Ebrahimi 1: A 4642*22dc650dSSadaf Ebrahimi 4643*22dc650dSSadaf Ebrahimi/(a+|b){0,1}?/i 4644*22dc650dSSadaf Ebrahimi AB 4645*22dc650dSSadaf Ebrahimi 0: 4646*22dc650dSSadaf Ebrahimi 4647*22dc650dSSadaf Ebrahimi/[^ab]*/i 4648*22dc650dSSadaf Ebrahimi CDE 4649*22dc650dSSadaf Ebrahimi 0: CDE 4650*22dc650dSSadaf Ebrahimi 4651*22dc650dSSadaf Ebrahimi/([abc])*d/i 4652*22dc650dSSadaf Ebrahimi ABBBCD 4653*22dc650dSSadaf Ebrahimi 0: ABBBCD 4654*22dc650dSSadaf Ebrahimi 1: C 4655*22dc650dSSadaf Ebrahimi 4656*22dc650dSSadaf Ebrahimi/([abc])*bcd/i 4657*22dc650dSSadaf Ebrahimi ABCD 4658*22dc650dSSadaf Ebrahimi 0: ABCD 4659*22dc650dSSadaf Ebrahimi 1: A 4660*22dc650dSSadaf Ebrahimi 4661*22dc650dSSadaf Ebrahimi/a|b|c|d|e/i 4662*22dc650dSSadaf Ebrahimi E 4663*22dc650dSSadaf Ebrahimi 0: E 4664*22dc650dSSadaf Ebrahimi 4665*22dc650dSSadaf Ebrahimi/(a|b|c|d|e)f/i 4666*22dc650dSSadaf Ebrahimi EF 4667*22dc650dSSadaf Ebrahimi 0: EF 4668*22dc650dSSadaf Ebrahimi 1: E 4669*22dc650dSSadaf Ebrahimi 4670*22dc650dSSadaf Ebrahimi/abcd*efg/i 4671*22dc650dSSadaf Ebrahimi ABCDEFG 4672*22dc650dSSadaf Ebrahimi 0: ABCDEFG 4673*22dc650dSSadaf Ebrahimi 4674*22dc650dSSadaf Ebrahimi/ab*/i 4675*22dc650dSSadaf Ebrahimi XABYABBBZ 4676*22dc650dSSadaf Ebrahimi 0: AB 4677*22dc650dSSadaf Ebrahimi XAYABBBZ 4678*22dc650dSSadaf Ebrahimi 0: A 4679*22dc650dSSadaf Ebrahimi 4680*22dc650dSSadaf Ebrahimi/(ab|cd)e/i 4681*22dc650dSSadaf Ebrahimi ABCDE 4682*22dc650dSSadaf Ebrahimi 0: CDE 4683*22dc650dSSadaf Ebrahimi 1: CD 4684*22dc650dSSadaf Ebrahimi 4685*22dc650dSSadaf Ebrahimi/[abhgefdc]ij/i 4686*22dc650dSSadaf Ebrahimi HIJ 4687*22dc650dSSadaf Ebrahimi 0: HIJ 4688*22dc650dSSadaf Ebrahimi 4689*22dc650dSSadaf Ebrahimi/^(ab|cd)e/i 4690*22dc650dSSadaf Ebrahimi\= Expect no match 4691*22dc650dSSadaf Ebrahimi ABCDE 4692*22dc650dSSadaf EbrahimiNo match 4693*22dc650dSSadaf Ebrahimi 4694*22dc650dSSadaf Ebrahimi/(abc|)ef/i 4695*22dc650dSSadaf Ebrahimi ABCDEF 4696*22dc650dSSadaf Ebrahimi 0: EF 4697*22dc650dSSadaf Ebrahimi 1: 4698*22dc650dSSadaf Ebrahimi 4699*22dc650dSSadaf Ebrahimi/(a|b)c*d/i 4700*22dc650dSSadaf Ebrahimi ABCD 4701*22dc650dSSadaf Ebrahimi 0: BCD 4702*22dc650dSSadaf Ebrahimi 1: B 4703*22dc650dSSadaf Ebrahimi 4704*22dc650dSSadaf Ebrahimi/(ab|ab*)bc/i 4705*22dc650dSSadaf Ebrahimi ABC 4706*22dc650dSSadaf Ebrahimi 0: ABC 4707*22dc650dSSadaf Ebrahimi 1: A 4708*22dc650dSSadaf Ebrahimi 4709*22dc650dSSadaf Ebrahimi/a([bc]*)c*/i 4710*22dc650dSSadaf Ebrahimi ABC 4711*22dc650dSSadaf Ebrahimi 0: ABC 4712*22dc650dSSadaf Ebrahimi 1: BC 4713*22dc650dSSadaf Ebrahimi 4714*22dc650dSSadaf Ebrahimi/a([bc]*)(c*d)/i 4715*22dc650dSSadaf Ebrahimi ABCD 4716*22dc650dSSadaf Ebrahimi 0: ABCD 4717*22dc650dSSadaf Ebrahimi 1: BC 4718*22dc650dSSadaf Ebrahimi 2: D 4719*22dc650dSSadaf Ebrahimi 4720*22dc650dSSadaf Ebrahimi/a([bc]+)(c*d)/i 4721*22dc650dSSadaf Ebrahimi ABCD 4722*22dc650dSSadaf Ebrahimi 0: ABCD 4723*22dc650dSSadaf Ebrahimi 1: BC 4724*22dc650dSSadaf Ebrahimi 2: D 4725*22dc650dSSadaf Ebrahimi 4726*22dc650dSSadaf Ebrahimi/a([bc]*)(c+d)/i 4727*22dc650dSSadaf Ebrahimi ABCD 4728*22dc650dSSadaf Ebrahimi 0: ABCD 4729*22dc650dSSadaf Ebrahimi 1: B 4730*22dc650dSSadaf Ebrahimi 2: CD 4731*22dc650dSSadaf Ebrahimi 4732*22dc650dSSadaf Ebrahimi/a[bcd]*dcdcde/i 4733*22dc650dSSadaf Ebrahimi ADCDCDE 4734*22dc650dSSadaf Ebrahimi 0: ADCDCDE 4735*22dc650dSSadaf Ebrahimi 4736*22dc650dSSadaf Ebrahimi/a[bcd]+dcdcde/i 4737*22dc650dSSadaf Ebrahimi 4738*22dc650dSSadaf Ebrahimi/(ab|a)b*c/i 4739*22dc650dSSadaf Ebrahimi ABC 4740*22dc650dSSadaf Ebrahimi 0: ABC 4741*22dc650dSSadaf Ebrahimi 1: AB 4742*22dc650dSSadaf Ebrahimi 4743*22dc650dSSadaf Ebrahimi/((a)(b)c)(d)/i 4744*22dc650dSSadaf Ebrahimi ABCD 4745*22dc650dSSadaf Ebrahimi 0: ABCD 4746*22dc650dSSadaf Ebrahimi 1: ABC 4747*22dc650dSSadaf Ebrahimi 2: A 4748*22dc650dSSadaf Ebrahimi 3: B 4749*22dc650dSSadaf Ebrahimi 4: D 4750*22dc650dSSadaf Ebrahimi 4751*22dc650dSSadaf Ebrahimi/[a-zA-Z_][a-zA-Z0-9_]*/i 4752*22dc650dSSadaf Ebrahimi ALPHA 4753*22dc650dSSadaf Ebrahimi 0: ALPHA 4754*22dc650dSSadaf Ebrahimi 4755*22dc650dSSadaf Ebrahimi/^a(bc+|b[eh])g|.h$/i 4756*22dc650dSSadaf Ebrahimi ABH 4757*22dc650dSSadaf Ebrahimi 0: BH 4758*22dc650dSSadaf Ebrahimi 4759*22dc650dSSadaf Ebrahimi/(bc+d$|ef*g.|h?i(j|k))/i 4760*22dc650dSSadaf Ebrahimi EFFGZ 4761*22dc650dSSadaf Ebrahimi 0: EFFGZ 4762*22dc650dSSadaf Ebrahimi 1: EFFGZ 4763*22dc650dSSadaf Ebrahimi IJ 4764*22dc650dSSadaf Ebrahimi 0: IJ 4765*22dc650dSSadaf Ebrahimi 1: IJ 4766*22dc650dSSadaf Ebrahimi 2: J 4767*22dc650dSSadaf Ebrahimi REFFGZ 4768*22dc650dSSadaf Ebrahimi 0: EFFGZ 4769*22dc650dSSadaf Ebrahimi 1: EFFGZ 4770*22dc650dSSadaf Ebrahimi\= Expect no match 4771*22dc650dSSadaf Ebrahimi ADCDCDE 4772*22dc650dSSadaf EbrahimiNo match 4773*22dc650dSSadaf Ebrahimi EFFG 4774*22dc650dSSadaf EbrahimiNo match 4775*22dc650dSSadaf Ebrahimi BCDD 4776*22dc650dSSadaf EbrahimiNo match 4777*22dc650dSSadaf Ebrahimi 4778*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))/i 4779*22dc650dSSadaf Ebrahimi A 4780*22dc650dSSadaf Ebrahimi 0: A 4781*22dc650dSSadaf Ebrahimi 1: A 4782*22dc650dSSadaf Ebrahimi 2: A 4783*22dc650dSSadaf Ebrahimi 3: A 4784*22dc650dSSadaf Ebrahimi 4: A 4785*22dc650dSSadaf Ebrahimi 5: A 4786*22dc650dSSadaf Ebrahimi 6: A 4787*22dc650dSSadaf Ebrahimi 7: A 4788*22dc650dSSadaf Ebrahimi 8: A 4789*22dc650dSSadaf Ebrahimi 9: A 4790*22dc650dSSadaf Ebrahimi10: A 4791*22dc650dSSadaf Ebrahimi 4792*22dc650dSSadaf Ebrahimi/((((((((((a))))))))))\10/i 4793*22dc650dSSadaf Ebrahimi AA 4794*22dc650dSSadaf Ebrahimi 0: AA 4795*22dc650dSSadaf Ebrahimi 1: A 4796*22dc650dSSadaf Ebrahimi 2: A 4797*22dc650dSSadaf Ebrahimi 3: A 4798*22dc650dSSadaf Ebrahimi 4: A 4799*22dc650dSSadaf Ebrahimi 5: A 4800*22dc650dSSadaf Ebrahimi 6: A 4801*22dc650dSSadaf Ebrahimi 7: A 4802*22dc650dSSadaf Ebrahimi 8: A 4803*22dc650dSSadaf Ebrahimi 9: A 4804*22dc650dSSadaf Ebrahimi10: A 4805*22dc650dSSadaf Ebrahimi 4806*22dc650dSSadaf Ebrahimi/(((((((((a)))))))))/i 4807*22dc650dSSadaf Ebrahimi A 4808*22dc650dSSadaf Ebrahimi 0: A 4809*22dc650dSSadaf Ebrahimi 1: A 4810*22dc650dSSadaf Ebrahimi 2: A 4811*22dc650dSSadaf Ebrahimi 3: A 4812*22dc650dSSadaf Ebrahimi 4: A 4813*22dc650dSSadaf Ebrahimi 5: A 4814*22dc650dSSadaf Ebrahimi 6: A 4815*22dc650dSSadaf Ebrahimi 7: A 4816*22dc650dSSadaf Ebrahimi 8: A 4817*22dc650dSSadaf Ebrahimi 9: A 4818*22dc650dSSadaf Ebrahimi 4819*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i 4820*22dc650dSSadaf Ebrahimi A 4821*22dc650dSSadaf Ebrahimi 0: A 4822*22dc650dSSadaf Ebrahimi 1: A 4823*22dc650dSSadaf Ebrahimi 4824*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i 4825*22dc650dSSadaf Ebrahimi C 4826*22dc650dSSadaf Ebrahimi 0: C 4827*22dc650dSSadaf Ebrahimi 1: C 4828*22dc650dSSadaf Ebrahimi 4829*22dc650dSSadaf Ebrahimi/multiple words of text/i 4830*22dc650dSSadaf Ebrahimi\= Expect no match 4831*22dc650dSSadaf Ebrahimi AA 4832*22dc650dSSadaf EbrahimiNo match 4833*22dc650dSSadaf Ebrahimi UH-UH 4834*22dc650dSSadaf EbrahimiNo match 4835*22dc650dSSadaf Ebrahimi 4836*22dc650dSSadaf Ebrahimi/multiple words/i 4837*22dc650dSSadaf Ebrahimi MULTIPLE WORDS, YEAH 4838*22dc650dSSadaf Ebrahimi 0: MULTIPLE WORDS 4839*22dc650dSSadaf Ebrahimi 4840*22dc650dSSadaf Ebrahimi/(.*)c(.*)/i 4841*22dc650dSSadaf Ebrahimi ABCDE 4842*22dc650dSSadaf Ebrahimi 0: ABCDE 4843*22dc650dSSadaf Ebrahimi 1: AB 4844*22dc650dSSadaf Ebrahimi 2: DE 4845*22dc650dSSadaf Ebrahimi 4846*22dc650dSSadaf Ebrahimi/\((.*), (.*)\)/i 4847*22dc650dSSadaf Ebrahimi (A, B) 4848*22dc650dSSadaf Ebrahimi 0: (A, B) 4849*22dc650dSSadaf Ebrahimi 1: A 4850*22dc650dSSadaf Ebrahimi 2: B 4851*22dc650dSSadaf Ebrahimi 4852*22dc650dSSadaf Ebrahimi/[k]/i 4853*22dc650dSSadaf Ebrahimi 4854*22dc650dSSadaf Ebrahimi/abcd/i 4855*22dc650dSSadaf Ebrahimi ABCD 4856*22dc650dSSadaf Ebrahimi 0: ABCD 4857*22dc650dSSadaf Ebrahimi 4858*22dc650dSSadaf Ebrahimi/a(bc)d/i 4859*22dc650dSSadaf Ebrahimi ABCD 4860*22dc650dSSadaf Ebrahimi 0: ABCD 4861*22dc650dSSadaf Ebrahimi 1: BC 4862*22dc650dSSadaf Ebrahimi 4863*22dc650dSSadaf Ebrahimi/a[-]?c/i 4864*22dc650dSSadaf Ebrahimi AC 4865*22dc650dSSadaf Ebrahimi 0: AC 4866*22dc650dSSadaf Ebrahimi 4867*22dc650dSSadaf Ebrahimi/(abc)\1/i 4868*22dc650dSSadaf Ebrahimi ABCABC 4869*22dc650dSSadaf Ebrahimi 0: ABCABC 4870*22dc650dSSadaf Ebrahimi 1: ABC 4871*22dc650dSSadaf Ebrahimi 4872*22dc650dSSadaf Ebrahimi/([a-c]*)\1/i 4873*22dc650dSSadaf Ebrahimi ABCABC 4874*22dc650dSSadaf Ebrahimi 0: ABCABC 4875*22dc650dSSadaf Ebrahimi 1: ABC 4876*22dc650dSSadaf Ebrahimi 4877*22dc650dSSadaf Ebrahimi/a(?!b)./ 4878*22dc650dSSadaf Ebrahimi abad 4879*22dc650dSSadaf Ebrahimi 0: ad 4880*22dc650dSSadaf Ebrahimi 4881*22dc650dSSadaf Ebrahimi/a(?=d)./ 4882*22dc650dSSadaf Ebrahimi abad 4883*22dc650dSSadaf Ebrahimi 0: ad 4884*22dc650dSSadaf Ebrahimi 4885*22dc650dSSadaf Ebrahimi/a(?=c|d)./ 4886*22dc650dSSadaf Ebrahimi abad 4887*22dc650dSSadaf Ebrahimi 0: ad 4888*22dc650dSSadaf Ebrahimi 4889*22dc650dSSadaf Ebrahimi/a(?:b|c|d)(.)/ 4890*22dc650dSSadaf Ebrahimi ace 4891*22dc650dSSadaf Ebrahimi 0: ace 4892*22dc650dSSadaf Ebrahimi 1: e 4893*22dc650dSSadaf Ebrahimi 4894*22dc650dSSadaf Ebrahimi/a(?:b|c|d)*(.)/ 4895*22dc650dSSadaf Ebrahimi ace 4896*22dc650dSSadaf Ebrahimi 0: ace 4897*22dc650dSSadaf Ebrahimi 1: e 4898*22dc650dSSadaf Ebrahimi 4899*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+?(.)/ 4900*22dc650dSSadaf Ebrahimi ace 4901*22dc650dSSadaf Ebrahimi 0: ace 4902*22dc650dSSadaf Ebrahimi 1: e 4903*22dc650dSSadaf Ebrahimi acdbcdbe 4904*22dc650dSSadaf Ebrahimi 0: acd 4905*22dc650dSSadaf Ebrahimi 1: d 4906*22dc650dSSadaf Ebrahimi 4907*22dc650dSSadaf Ebrahimi/a(?:b|c|d)+(.)/ 4908*22dc650dSSadaf Ebrahimi acdbcdbe 4909*22dc650dSSadaf Ebrahimi 0: acdbcdbe 4910*22dc650dSSadaf Ebrahimi 1: e 4911*22dc650dSSadaf Ebrahimi 4912*22dc650dSSadaf Ebrahimi/a(?:b|c|d){2}(.)/ 4913*22dc650dSSadaf Ebrahimi acdbcdbe 4914*22dc650dSSadaf Ebrahimi 0: acdb 4915*22dc650dSSadaf Ebrahimi 1: b 4916*22dc650dSSadaf Ebrahimi 4917*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}(.)/ 4918*22dc650dSSadaf Ebrahimi acdbcdbe 4919*22dc650dSSadaf Ebrahimi 0: acdbcdb 4920*22dc650dSSadaf Ebrahimi 1: b 4921*22dc650dSSadaf Ebrahimi 4922*22dc650dSSadaf Ebrahimi/a(?:b|c|d){4,5}?(.)/ 4923*22dc650dSSadaf Ebrahimi acdbcdbe 4924*22dc650dSSadaf Ebrahimi 0: acdbcd 4925*22dc650dSSadaf Ebrahimi 1: d 4926*22dc650dSSadaf Ebrahimi 4927*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}(.)/ 4928*22dc650dSSadaf Ebrahimi acdbcdbe 4929*22dc650dSSadaf Ebrahimi 0: acdbcdbe 4930*22dc650dSSadaf Ebrahimi 1: e 4931*22dc650dSSadaf Ebrahimi 4932*22dc650dSSadaf Ebrahimi/a(?:b|c|d){6,7}?(.)/ 4933*22dc650dSSadaf Ebrahimi acdbcdbe 4934*22dc650dSSadaf Ebrahimi 0: acdbcdbe 4935*22dc650dSSadaf Ebrahimi 1: e 4936*22dc650dSSadaf Ebrahimi 4937*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}(.)/ 4938*22dc650dSSadaf Ebrahimi acdbcdbe 4939*22dc650dSSadaf Ebrahimi 0: acdbcdbe 4940*22dc650dSSadaf Ebrahimi 1: e 4941*22dc650dSSadaf Ebrahimi 4942*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,6}?(.)/ 4943*22dc650dSSadaf Ebrahimi acdbcdbe 4944*22dc650dSSadaf Ebrahimi 0: acdbcdb 4945*22dc650dSSadaf Ebrahimi 1: b 4946*22dc650dSSadaf Ebrahimi 4947*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}(.)/ 4948*22dc650dSSadaf Ebrahimi acdbcdbe 4949*22dc650dSSadaf Ebrahimi 0: acdbcdbe 4950*22dc650dSSadaf Ebrahimi 1: e 4951*22dc650dSSadaf Ebrahimi 4952*22dc650dSSadaf Ebrahimi/a(?:b|c|d){5,7}?(.)/ 4953*22dc650dSSadaf Ebrahimi acdbcdbe 4954*22dc650dSSadaf Ebrahimi 0: acdbcdb 4955*22dc650dSSadaf Ebrahimi 1: b 4956*22dc650dSSadaf Ebrahimi 4957*22dc650dSSadaf Ebrahimi/a(?:b|(c|e){1,2}?|d)+?(.)/ 4958*22dc650dSSadaf Ebrahimi ace 4959*22dc650dSSadaf Ebrahimi 0: ace 4960*22dc650dSSadaf Ebrahimi 1: c 4961*22dc650dSSadaf Ebrahimi 2: e 4962*22dc650dSSadaf Ebrahimi 4963*22dc650dSSadaf Ebrahimi/^(.+)?B/ 4964*22dc650dSSadaf Ebrahimi AB 4965*22dc650dSSadaf Ebrahimi 0: AB 4966*22dc650dSSadaf Ebrahimi 1: A 4967*22dc650dSSadaf Ebrahimi 4968*22dc650dSSadaf Ebrahimi/^([^a-z])|(\^)$/ 4969*22dc650dSSadaf Ebrahimi . 4970*22dc650dSSadaf Ebrahimi 0: . 4971*22dc650dSSadaf Ebrahimi 1: . 4972*22dc650dSSadaf Ebrahimi 4973*22dc650dSSadaf Ebrahimi/^[<>]&/ 4974*22dc650dSSadaf Ebrahimi <&OUT 4975*22dc650dSSadaf Ebrahimi 0: <& 4976*22dc650dSSadaf Ebrahimi 4977*22dc650dSSadaf Ebrahimi/^(a\1?){4}$/ 4978*22dc650dSSadaf Ebrahimi aaaaaaaaaa 4979*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaa 4980*22dc650dSSadaf Ebrahimi 1: aaaa 4981*22dc650dSSadaf Ebrahimi\= Expect no match 4982*22dc650dSSadaf Ebrahimi AB 4983*22dc650dSSadaf EbrahimiNo match 4984*22dc650dSSadaf Ebrahimi aaaaaaaaa 4985*22dc650dSSadaf EbrahimiNo match 4986*22dc650dSSadaf Ebrahimi aaaaaaaaaaa 4987*22dc650dSSadaf EbrahimiNo match 4988*22dc650dSSadaf Ebrahimi 4989*22dc650dSSadaf Ebrahimi/^(a(?(1)\1)){4}$/ 4990*22dc650dSSadaf Ebrahimi aaaaaaaaaa 4991*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaa 4992*22dc650dSSadaf Ebrahimi 1: aaaa 4993*22dc650dSSadaf Ebrahimi\= Expect no match 4994*22dc650dSSadaf Ebrahimi aaaaaaaaa 4995*22dc650dSSadaf EbrahimiNo match 4996*22dc650dSSadaf Ebrahimi aaaaaaaaaaa 4997*22dc650dSSadaf EbrahimiNo match 4998*22dc650dSSadaf Ebrahimi 4999*22dc650dSSadaf Ebrahimi/(?<=a)b/ 5000*22dc650dSSadaf Ebrahimi ab 5001*22dc650dSSadaf Ebrahimi 0: b 5002*22dc650dSSadaf Ebrahimi\= Expect no match 5003*22dc650dSSadaf Ebrahimi cb 5004*22dc650dSSadaf EbrahimiNo match 5005*22dc650dSSadaf Ebrahimi b 5006*22dc650dSSadaf EbrahimiNo match 5007*22dc650dSSadaf Ebrahimi 5008*22dc650dSSadaf Ebrahimi/(?<!c)b/ 5009*22dc650dSSadaf Ebrahimi ab 5010*22dc650dSSadaf Ebrahimi 0: b 5011*22dc650dSSadaf Ebrahimi b 5012*22dc650dSSadaf Ebrahimi 0: b 5013*22dc650dSSadaf Ebrahimi b 5014*22dc650dSSadaf Ebrahimi 0: b 5015*22dc650dSSadaf Ebrahimi 5016*22dc650dSSadaf Ebrahimi/(?:..)*a/ 5017*22dc650dSSadaf Ebrahimi aba 5018*22dc650dSSadaf Ebrahimi 0: aba 5019*22dc650dSSadaf Ebrahimi 5020*22dc650dSSadaf Ebrahimi/(?:..)*?a/ 5021*22dc650dSSadaf Ebrahimi aba 5022*22dc650dSSadaf Ebrahimi 0: a 5023*22dc650dSSadaf Ebrahimi 5024*22dc650dSSadaf Ebrahimi/^(?:b|a(?=(.)))*\1/ 5025*22dc650dSSadaf Ebrahimi abc 5026*22dc650dSSadaf Ebrahimi 0: ab 5027*22dc650dSSadaf Ebrahimi 1: b 5028*22dc650dSSadaf Ebrahimi 5029*22dc650dSSadaf Ebrahimi/^(){3,5}/ 5030*22dc650dSSadaf Ebrahimi abc 5031*22dc650dSSadaf Ebrahimi 0: 5032*22dc650dSSadaf Ebrahimi 1: 5033*22dc650dSSadaf Ebrahimi 5034*22dc650dSSadaf Ebrahimi/^(a+)*ax/ 5035*22dc650dSSadaf Ebrahimi aax 5036*22dc650dSSadaf Ebrahimi 0: aax 5037*22dc650dSSadaf Ebrahimi 1: a 5038*22dc650dSSadaf Ebrahimi 5039*22dc650dSSadaf Ebrahimi/^((a|b)+)*ax/ 5040*22dc650dSSadaf Ebrahimi aax 5041*22dc650dSSadaf Ebrahimi 0: aax 5042*22dc650dSSadaf Ebrahimi 1: a 5043*22dc650dSSadaf Ebrahimi 2: a 5044*22dc650dSSadaf Ebrahimi 5045*22dc650dSSadaf Ebrahimi/^((a|bc)+)*ax/ 5046*22dc650dSSadaf Ebrahimi aax 5047*22dc650dSSadaf Ebrahimi 0: aax 5048*22dc650dSSadaf Ebrahimi 1: a 5049*22dc650dSSadaf Ebrahimi 2: a 5050*22dc650dSSadaf Ebrahimi 5051*22dc650dSSadaf Ebrahimi/(a|x)*ab/ 5052*22dc650dSSadaf Ebrahimi cab 5053*22dc650dSSadaf Ebrahimi 0: ab 5054*22dc650dSSadaf Ebrahimi 5055*22dc650dSSadaf Ebrahimi/(a)*ab/ 5056*22dc650dSSadaf Ebrahimi cab 5057*22dc650dSSadaf Ebrahimi 0: ab 5058*22dc650dSSadaf Ebrahimi 5059*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/ 5060*22dc650dSSadaf Ebrahimi ab 5061*22dc650dSSadaf Ebrahimi 0: ab 5062*22dc650dSSadaf Ebrahimi 5063*22dc650dSSadaf Ebrahimi/((?i)a)b/ 5064*22dc650dSSadaf Ebrahimi ab 5065*22dc650dSSadaf Ebrahimi 0: ab 5066*22dc650dSSadaf Ebrahimi 1: a 5067*22dc650dSSadaf Ebrahimi 5068*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/ 5069*22dc650dSSadaf Ebrahimi Ab 5070*22dc650dSSadaf Ebrahimi 0: Ab 5071*22dc650dSSadaf Ebrahimi 5072*22dc650dSSadaf Ebrahimi/((?i)a)b/ 5073*22dc650dSSadaf Ebrahimi Ab 5074*22dc650dSSadaf Ebrahimi 0: Ab 5075*22dc650dSSadaf Ebrahimi 1: A 5076*22dc650dSSadaf Ebrahimi 5077*22dc650dSSadaf Ebrahimi/(?:(?i)a)b/ 5078*22dc650dSSadaf Ebrahimi\= Expect no match 5079*22dc650dSSadaf Ebrahimi cb 5080*22dc650dSSadaf EbrahimiNo match 5081*22dc650dSSadaf Ebrahimi aB 5082*22dc650dSSadaf EbrahimiNo match 5083*22dc650dSSadaf Ebrahimi 5084*22dc650dSSadaf Ebrahimi/((?i)a)b/ 5085*22dc650dSSadaf Ebrahimi 5086*22dc650dSSadaf Ebrahimi/(?i:a)b/ 5087*22dc650dSSadaf Ebrahimi ab 5088*22dc650dSSadaf Ebrahimi 0: ab 5089*22dc650dSSadaf Ebrahimi 5090*22dc650dSSadaf Ebrahimi/((?i:a))b/ 5091*22dc650dSSadaf Ebrahimi ab 5092*22dc650dSSadaf Ebrahimi 0: ab 5093*22dc650dSSadaf Ebrahimi 1: a 5094*22dc650dSSadaf Ebrahimi 5095*22dc650dSSadaf Ebrahimi/(?i:a)b/ 5096*22dc650dSSadaf Ebrahimi Ab 5097*22dc650dSSadaf Ebrahimi 0: Ab 5098*22dc650dSSadaf Ebrahimi 5099*22dc650dSSadaf Ebrahimi/((?i:a))b/ 5100*22dc650dSSadaf Ebrahimi Ab 5101*22dc650dSSadaf Ebrahimi 0: Ab 5102*22dc650dSSadaf Ebrahimi 1: A 5103*22dc650dSSadaf Ebrahimi 5104*22dc650dSSadaf Ebrahimi/(?i:a)b/ 5105*22dc650dSSadaf Ebrahimi\= Expect no match 5106*22dc650dSSadaf Ebrahimi aB 5107*22dc650dSSadaf EbrahimiNo match 5108*22dc650dSSadaf Ebrahimi aB 5109*22dc650dSSadaf EbrahimiNo match 5110*22dc650dSSadaf Ebrahimi 5111*22dc650dSSadaf Ebrahimi/((?i:a))b/ 5112*22dc650dSSadaf Ebrahimi 5113*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i 5114*22dc650dSSadaf Ebrahimi ab 5115*22dc650dSSadaf Ebrahimi 0: ab 5116*22dc650dSSadaf Ebrahimi 5117*22dc650dSSadaf Ebrahimi/((?-i)a)b/i 5118*22dc650dSSadaf Ebrahimi ab 5119*22dc650dSSadaf Ebrahimi 0: ab 5120*22dc650dSSadaf Ebrahimi 1: a 5121*22dc650dSSadaf Ebrahimi 5122*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i 5123*22dc650dSSadaf Ebrahimi aB 5124*22dc650dSSadaf Ebrahimi 0: aB 5125*22dc650dSSadaf Ebrahimi 5126*22dc650dSSadaf Ebrahimi/((?-i)a)b/i 5127*22dc650dSSadaf Ebrahimi aB 5128*22dc650dSSadaf Ebrahimi 0: aB 5129*22dc650dSSadaf Ebrahimi 1: a 5130*22dc650dSSadaf Ebrahimi 5131*22dc650dSSadaf Ebrahimi/(?:(?-i)a)b/i 5132*22dc650dSSadaf Ebrahimi aB 5133*22dc650dSSadaf Ebrahimi 0: aB 5134*22dc650dSSadaf Ebrahimi\= Expect no match 5135*22dc650dSSadaf Ebrahimi Ab 5136*22dc650dSSadaf EbrahimiNo match 5137*22dc650dSSadaf Ebrahimi AB 5138*22dc650dSSadaf EbrahimiNo match 5139*22dc650dSSadaf Ebrahimi 5140*22dc650dSSadaf Ebrahimi/(?-i:a)b/i 5141*22dc650dSSadaf Ebrahimi ab 5142*22dc650dSSadaf Ebrahimi 0: ab 5143*22dc650dSSadaf Ebrahimi 5144*22dc650dSSadaf Ebrahimi/((?-i:a))b/i 5145*22dc650dSSadaf Ebrahimi ab 5146*22dc650dSSadaf Ebrahimi 0: ab 5147*22dc650dSSadaf Ebrahimi 1: a 5148*22dc650dSSadaf Ebrahimi 5149*22dc650dSSadaf Ebrahimi/(?-i:a)b/i 5150*22dc650dSSadaf Ebrahimi aB 5151*22dc650dSSadaf Ebrahimi 0: aB 5152*22dc650dSSadaf Ebrahimi 5153*22dc650dSSadaf Ebrahimi/((?-i:a))b/i 5154*22dc650dSSadaf Ebrahimi aB 5155*22dc650dSSadaf Ebrahimi 0: aB 5156*22dc650dSSadaf Ebrahimi 1: a 5157*22dc650dSSadaf Ebrahimi 5158*22dc650dSSadaf Ebrahimi/(?-i:a)b/i 5159*22dc650dSSadaf Ebrahimi\= Expect no match 5160*22dc650dSSadaf Ebrahimi AB 5161*22dc650dSSadaf EbrahimiNo match 5162*22dc650dSSadaf Ebrahimi Ab 5163*22dc650dSSadaf EbrahimiNo match 5164*22dc650dSSadaf Ebrahimi 5165*22dc650dSSadaf Ebrahimi/((?-i:a))b/i 5166*22dc650dSSadaf Ebrahimi 5167*22dc650dSSadaf Ebrahimi/(?-i:a)b/i 5168*22dc650dSSadaf Ebrahimi aB 5169*22dc650dSSadaf Ebrahimi 0: aB 5170*22dc650dSSadaf Ebrahimi 5171*22dc650dSSadaf Ebrahimi/((?-i:a))b/i 5172*22dc650dSSadaf Ebrahimi aB 5173*22dc650dSSadaf Ebrahimi 0: aB 5174*22dc650dSSadaf Ebrahimi 1: a 5175*22dc650dSSadaf Ebrahimi 5176*22dc650dSSadaf Ebrahimi/(?-i:a)b/i 5177*22dc650dSSadaf Ebrahimi\= Expect no match 5178*22dc650dSSadaf Ebrahimi Ab 5179*22dc650dSSadaf EbrahimiNo match 5180*22dc650dSSadaf Ebrahimi AB 5181*22dc650dSSadaf EbrahimiNo match 5182*22dc650dSSadaf Ebrahimi 5183*22dc650dSSadaf Ebrahimi/((?-i:a))b/i 5184*22dc650dSSadaf Ebrahimi 5185*22dc650dSSadaf Ebrahimi/((?-i:a.))b/i 5186*22dc650dSSadaf Ebrahimi\= Expect no match 5187*22dc650dSSadaf Ebrahimi AB 5188*22dc650dSSadaf EbrahimiNo match 5189*22dc650dSSadaf Ebrahimi a\nB 5190*22dc650dSSadaf EbrahimiNo match 5191*22dc650dSSadaf Ebrahimi 5192*22dc650dSSadaf Ebrahimi/((?s-i:a.))b/i 5193*22dc650dSSadaf Ebrahimi a\nB 5194*22dc650dSSadaf Ebrahimi 0: a\x0aB 5195*22dc650dSSadaf Ebrahimi 1: a\x0a 5196*22dc650dSSadaf Ebrahimi 5197*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ 5198*22dc650dSSadaf Ebrahimi cabbbb 5199*22dc650dSSadaf Ebrahimi 0: cabbbb 5200*22dc650dSSadaf Ebrahimi 5201*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ 5202*22dc650dSSadaf Ebrahimi caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5203*22dc650dSSadaf Ebrahimi 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5204*22dc650dSSadaf Ebrahimi 5205*22dc650dSSadaf Ebrahimi/(ab)\d\1/i 5206*22dc650dSSadaf Ebrahimi Ab4ab 5207*22dc650dSSadaf Ebrahimi 0: Ab4ab 5208*22dc650dSSadaf Ebrahimi 1: Ab 5209*22dc650dSSadaf Ebrahimi ab4Ab 5210*22dc650dSSadaf Ebrahimi 0: ab4Ab 5211*22dc650dSSadaf Ebrahimi 1: ab 5212*22dc650dSSadaf Ebrahimi 5213*22dc650dSSadaf Ebrahimi/foo\w*\d{4}baz/ 5214*22dc650dSSadaf Ebrahimi foobar1234baz 5215*22dc650dSSadaf Ebrahimi 0: foobar1234baz 5216*22dc650dSSadaf Ebrahimi 5217*22dc650dSSadaf Ebrahimi/x(~~)*(?:(?:F)?)?/ 5218*22dc650dSSadaf Ebrahimi x~~ 5219*22dc650dSSadaf Ebrahimi 0: x~~ 5220*22dc650dSSadaf Ebrahimi 1: ~~ 5221*22dc650dSSadaf Ebrahimi 5222*22dc650dSSadaf Ebrahimi/^a(?#xxx){3}c/ 5223*22dc650dSSadaf Ebrahimi aaac 5224*22dc650dSSadaf Ebrahimi 0: aaac 5225*22dc650dSSadaf Ebrahimi 5226*22dc650dSSadaf Ebrahimi/^a (?#xxx) (?#yyy) {3}c/x 5227*22dc650dSSadaf Ebrahimi aaac 5228*22dc650dSSadaf Ebrahimi 0: aaac 5229*22dc650dSSadaf Ebrahimi 5230*22dc650dSSadaf Ebrahimi/(?<![cd])b/ 5231*22dc650dSSadaf Ebrahimi\= Expect no match 5232*22dc650dSSadaf Ebrahimi B\nB 5233*22dc650dSSadaf EbrahimiNo match 5234*22dc650dSSadaf Ebrahimi dbcb 5235*22dc650dSSadaf EbrahimiNo match 5236*22dc650dSSadaf Ebrahimi 5237*22dc650dSSadaf Ebrahimi/(?<![cd])[ab]/ 5238*22dc650dSSadaf Ebrahimi dbaacb 5239*22dc650dSSadaf Ebrahimi 0: a 5240*22dc650dSSadaf Ebrahimi 5241*22dc650dSSadaf Ebrahimi/(?<!(c|d))b/ 5242*22dc650dSSadaf Ebrahimi 5243*22dc650dSSadaf Ebrahimi/(?<!(c|d))[ab]/ 5244*22dc650dSSadaf Ebrahimi dbaacb 5245*22dc650dSSadaf Ebrahimi 0: a 5246*22dc650dSSadaf Ebrahimi 5247*22dc650dSSadaf Ebrahimi/(?<!cd)[ab]/ 5248*22dc650dSSadaf Ebrahimi cdaccb 5249*22dc650dSSadaf Ebrahimi 0: b 5250*22dc650dSSadaf Ebrahimi 5251*22dc650dSSadaf Ebrahimi/^(?:a?b?)*$/ 5252*22dc650dSSadaf Ebrahimi \ 5253*22dc650dSSadaf Ebrahimi 0: 5254*22dc650dSSadaf Ebrahimi a 5255*22dc650dSSadaf Ebrahimi 0: a 5256*22dc650dSSadaf Ebrahimi ab 5257*22dc650dSSadaf Ebrahimi 0: ab 5258*22dc650dSSadaf Ebrahimi aaa 5259*22dc650dSSadaf Ebrahimi 0: aaa 5260*22dc650dSSadaf Ebrahimi\= Expect no match 5261*22dc650dSSadaf Ebrahimi dbcb 5262*22dc650dSSadaf EbrahimiNo match 5263*22dc650dSSadaf Ebrahimi a-- 5264*22dc650dSSadaf EbrahimiNo match 5265*22dc650dSSadaf Ebrahimi aa-- 5266*22dc650dSSadaf EbrahimiNo match 5267*22dc650dSSadaf Ebrahimi 5268*22dc650dSSadaf Ebrahimi/((?s)^a(.))((?m)^b$)/ 5269*22dc650dSSadaf Ebrahimi a\nb\nc\n 5270*22dc650dSSadaf Ebrahimi 0: a\x0ab 5271*22dc650dSSadaf Ebrahimi 1: a\x0a 5272*22dc650dSSadaf Ebrahimi 2: \x0a 5273*22dc650dSSadaf Ebrahimi 3: b 5274*22dc650dSSadaf Ebrahimi 5275*22dc650dSSadaf Ebrahimi/((?m)^b$)/ 5276*22dc650dSSadaf Ebrahimi a\nb\nc\n 5277*22dc650dSSadaf Ebrahimi 0: b 5278*22dc650dSSadaf Ebrahimi 1: b 5279*22dc650dSSadaf Ebrahimi 5280*22dc650dSSadaf Ebrahimi/(?m)^b/ 5281*22dc650dSSadaf Ebrahimi a\nb\n 5282*22dc650dSSadaf Ebrahimi 0: b 5283*22dc650dSSadaf Ebrahimi 5284*22dc650dSSadaf Ebrahimi/(?m)^(b)/ 5285*22dc650dSSadaf Ebrahimi a\nb\n 5286*22dc650dSSadaf Ebrahimi 0: b 5287*22dc650dSSadaf Ebrahimi 1: b 5288*22dc650dSSadaf Ebrahimi 5289*22dc650dSSadaf Ebrahimi/((?m)^b)/ 5290*22dc650dSSadaf Ebrahimi a\nb\n 5291*22dc650dSSadaf Ebrahimi 0: b 5292*22dc650dSSadaf Ebrahimi 1: b 5293*22dc650dSSadaf Ebrahimi 5294*22dc650dSSadaf Ebrahimi/\n((?m)^b)/ 5295*22dc650dSSadaf Ebrahimi a\nb\n 5296*22dc650dSSadaf Ebrahimi 0: \x0ab 5297*22dc650dSSadaf Ebrahimi 1: b 5298*22dc650dSSadaf Ebrahimi 5299*22dc650dSSadaf Ebrahimi/((?s).)c(?!.)/ 5300*22dc650dSSadaf Ebrahimi a\nb\nc\n 5301*22dc650dSSadaf Ebrahimi 0: \x0ac 5302*22dc650dSSadaf Ebrahimi 1: \x0a 5303*22dc650dSSadaf Ebrahimi a\nb\nc\n 5304*22dc650dSSadaf Ebrahimi 0: \x0ac 5305*22dc650dSSadaf Ebrahimi 1: \x0a 5306*22dc650dSSadaf Ebrahimi 5307*22dc650dSSadaf Ebrahimi/((?s)b.)c(?!.)/ 5308*22dc650dSSadaf Ebrahimi a\nb\nc\n 5309*22dc650dSSadaf Ebrahimi 0: b\x0ac 5310*22dc650dSSadaf Ebrahimi 1: b\x0a 5311*22dc650dSSadaf Ebrahimi a\nb\nc\n 5312*22dc650dSSadaf Ebrahimi 0: b\x0ac 5313*22dc650dSSadaf Ebrahimi 1: b\x0a 5314*22dc650dSSadaf Ebrahimi 5315*22dc650dSSadaf Ebrahimi/^b/ 5316*22dc650dSSadaf Ebrahimi 5317*22dc650dSSadaf Ebrahimi/()^b/ 5318*22dc650dSSadaf Ebrahimi\= Expect no match 5319*22dc650dSSadaf Ebrahimi a\nb\nc\n 5320*22dc650dSSadaf EbrahimiNo match 5321*22dc650dSSadaf Ebrahimi a\nb\nc\n 5322*22dc650dSSadaf EbrahimiNo match 5323*22dc650dSSadaf Ebrahimi 5324*22dc650dSSadaf Ebrahimi/((?m)^b)/ 5325*22dc650dSSadaf Ebrahimi a\nb\nc\n 5326*22dc650dSSadaf Ebrahimi 0: b 5327*22dc650dSSadaf Ebrahimi 1: b 5328*22dc650dSSadaf Ebrahimi 5329*22dc650dSSadaf Ebrahimi/(x)?(?(1)a|b)/ 5330*22dc650dSSadaf Ebrahimi\= Expect no match 5331*22dc650dSSadaf Ebrahimi a 5332*22dc650dSSadaf EbrahimiNo match 5333*22dc650dSSadaf Ebrahimi a 5334*22dc650dSSadaf EbrahimiNo match 5335*22dc650dSSadaf Ebrahimi 5336*22dc650dSSadaf Ebrahimi/(x)?(?(1)b|a)/ 5337*22dc650dSSadaf Ebrahimi a 5338*22dc650dSSadaf Ebrahimi 0: a 5339*22dc650dSSadaf Ebrahimi 5340*22dc650dSSadaf Ebrahimi/()?(?(1)b|a)/ 5341*22dc650dSSadaf Ebrahimi a 5342*22dc650dSSadaf Ebrahimi 0: a 5343*22dc650dSSadaf Ebrahimi 5344*22dc650dSSadaf Ebrahimi/()(?(1)b|a)/ 5345*22dc650dSSadaf Ebrahimi 5346*22dc650dSSadaf Ebrahimi/()?(?(1)a|b)/ 5347*22dc650dSSadaf Ebrahimi a 5348*22dc650dSSadaf Ebrahimi 0: a 5349*22dc650dSSadaf Ebrahimi 1: 5350*22dc650dSSadaf Ebrahimi 5351*22dc650dSSadaf Ebrahimi/^(\()?blah(?(1)(\)))$/ 5352*22dc650dSSadaf Ebrahimi (blah) 5353*22dc650dSSadaf Ebrahimi 0: (blah) 5354*22dc650dSSadaf Ebrahimi 1: ( 5355*22dc650dSSadaf Ebrahimi 2: ) 5356*22dc650dSSadaf Ebrahimi blah 5357*22dc650dSSadaf Ebrahimi 0: blah 5358*22dc650dSSadaf Ebrahimi\= Expect no match 5359*22dc650dSSadaf Ebrahimi a 5360*22dc650dSSadaf EbrahimiNo match 5361*22dc650dSSadaf Ebrahimi blah) 5362*22dc650dSSadaf EbrahimiNo match 5363*22dc650dSSadaf Ebrahimi (blah 5364*22dc650dSSadaf EbrahimiNo match 5365*22dc650dSSadaf Ebrahimi 5366*22dc650dSSadaf Ebrahimi/^(\(+)?blah(?(1)(\)))$/ 5367*22dc650dSSadaf Ebrahimi (blah) 5368*22dc650dSSadaf Ebrahimi 0: (blah) 5369*22dc650dSSadaf Ebrahimi 1: ( 5370*22dc650dSSadaf Ebrahimi 2: ) 5371*22dc650dSSadaf Ebrahimi blah 5372*22dc650dSSadaf Ebrahimi 0: blah 5373*22dc650dSSadaf Ebrahimi\= Expect no match 5374*22dc650dSSadaf Ebrahimi blah) 5375*22dc650dSSadaf EbrahimiNo match 5376*22dc650dSSadaf Ebrahimi (blah 5377*22dc650dSSadaf EbrahimiNo match 5378*22dc650dSSadaf Ebrahimi 5379*22dc650dSSadaf Ebrahimi/(?(?!a)a|b)/ 5380*22dc650dSSadaf Ebrahimi 5381*22dc650dSSadaf Ebrahimi/(?(?!a)b|a)/ 5382*22dc650dSSadaf Ebrahimi a 5383*22dc650dSSadaf Ebrahimi 0: a 5384*22dc650dSSadaf Ebrahimi 5385*22dc650dSSadaf Ebrahimi/(?(?=a)b|a)/ 5386*22dc650dSSadaf Ebrahimi\= Expect no match 5387*22dc650dSSadaf Ebrahimi a 5388*22dc650dSSadaf EbrahimiNo match 5389*22dc650dSSadaf Ebrahimi a 5390*22dc650dSSadaf EbrahimiNo match 5391*22dc650dSSadaf Ebrahimi 5392*22dc650dSSadaf Ebrahimi/(?(?=a)a|b)/ 5393*22dc650dSSadaf Ebrahimi a 5394*22dc650dSSadaf Ebrahimi 0: a 5395*22dc650dSSadaf Ebrahimi 5396*22dc650dSSadaf Ebrahimi/(?=(a+?))(\1ab)/ 5397*22dc650dSSadaf Ebrahimi aaab 5398*22dc650dSSadaf Ebrahimi 0: aab 5399*22dc650dSSadaf Ebrahimi 1: a 5400*22dc650dSSadaf Ebrahimi 2: aab 5401*22dc650dSSadaf Ebrahimi 5402*22dc650dSSadaf Ebrahimi/^(?=(a+?))\1ab/ 5403*22dc650dSSadaf Ebrahimi 5404*22dc650dSSadaf Ebrahimi/(\w+:)+/ 5405*22dc650dSSadaf Ebrahimi one: 5406*22dc650dSSadaf Ebrahimi 0: one: 5407*22dc650dSSadaf Ebrahimi 1: one: 5408*22dc650dSSadaf Ebrahimi 5409*22dc650dSSadaf Ebrahimi/$(?<=^(a))/ 5410*22dc650dSSadaf Ebrahimi a 5411*22dc650dSSadaf Ebrahimi 0: 5412*22dc650dSSadaf Ebrahimi 1: a 5413*22dc650dSSadaf Ebrahimi 5414*22dc650dSSadaf Ebrahimi/(?=(a+?))(\1ab)/ 5415*22dc650dSSadaf Ebrahimi aaab 5416*22dc650dSSadaf Ebrahimi 0: aab 5417*22dc650dSSadaf Ebrahimi 1: a 5418*22dc650dSSadaf Ebrahimi 2: aab 5419*22dc650dSSadaf Ebrahimi 5420*22dc650dSSadaf Ebrahimi/^(?=(a+?))\1ab/ 5421*22dc650dSSadaf Ebrahimi\= Expect no match 5422*22dc650dSSadaf Ebrahimi aaab 5423*22dc650dSSadaf EbrahimiNo match 5424*22dc650dSSadaf Ebrahimi aaab 5425*22dc650dSSadaf EbrahimiNo match 5426*22dc650dSSadaf Ebrahimi 5427*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/ 5428*22dc650dSSadaf Ebrahimi abcd 5429*22dc650dSSadaf Ebrahimi 0: abcd 5430*22dc650dSSadaf Ebrahimi 1: <unset> 5431*22dc650dSSadaf Ebrahimi 2: abcd 5432*22dc650dSSadaf Ebrahimi xy:z:::abcd 5433*22dc650dSSadaf Ebrahimi 0: xy:z:::abcd 5434*22dc650dSSadaf Ebrahimi 1: xy:z::: 5435*22dc650dSSadaf Ebrahimi 2: abcd 5436*22dc650dSSadaf Ebrahimi 5437*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/ 5438*22dc650dSSadaf Ebrahimi aexycd 5439*22dc650dSSadaf Ebrahimi 0: aexyc 5440*22dc650dSSadaf Ebrahimi 1: c 5441*22dc650dSSadaf Ebrahimi 5442*22dc650dSSadaf Ebrahimi/(a*)b+/ 5443*22dc650dSSadaf Ebrahimi caab 5444*22dc650dSSadaf Ebrahimi 0: aab 5445*22dc650dSSadaf Ebrahimi 1: aa 5446*22dc650dSSadaf Ebrahimi 5447*22dc650dSSadaf Ebrahimi/([\w:]+::)?(\w+)$/ 5448*22dc650dSSadaf Ebrahimi abcd 5449*22dc650dSSadaf Ebrahimi 0: abcd 5450*22dc650dSSadaf Ebrahimi 1: <unset> 5451*22dc650dSSadaf Ebrahimi 2: abcd 5452*22dc650dSSadaf Ebrahimi xy:z:::abcd 5453*22dc650dSSadaf Ebrahimi 0: xy:z:::abcd 5454*22dc650dSSadaf Ebrahimi 1: xy:z::: 5455*22dc650dSSadaf Ebrahimi 2: abcd 5456*22dc650dSSadaf Ebrahimi\= Expect no match 5457*22dc650dSSadaf Ebrahimi abcd: 5458*22dc650dSSadaf EbrahimiNo match 5459*22dc650dSSadaf Ebrahimi abcd: 5460*22dc650dSSadaf EbrahimiNo match 5461*22dc650dSSadaf Ebrahimi 5462*22dc650dSSadaf Ebrahimi/^[^bcd]*(c+)/ 5463*22dc650dSSadaf Ebrahimi aexycd 5464*22dc650dSSadaf Ebrahimi 0: aexyc 5465*22dc650dSSadaf Ebrahimi 1: c 5466*22dc650dSSadaf Ebrahimi 5467*22dc650dSSadaf Ebrahimi/(>a+)ab/ 5468*22dc650dSSadaf Ebrahimi 5469*22dc650dSSadaf Ebrahimi/(?>a+)b/ 5470*22dc650dSSadaf Ebrahimi aaab 5471*22dc650dSSadaf Ebrahimi 0: aaab 5472*22dc650dSSadaf Ebrahimi 5473*22dc650dSSadaf Ebrahimi/([[:]+)/ 5474*22dc650dSSadaf Ebrahimi a:[b]: 5475*22dc650dSSadaf Ebrahimi 0: :[ 5476*22dc650dSSadaf Ebrahimi 1: :[ 5477*22dc650dSSadaf Ebrahimi 5478*22dc650dSSadaf Ebrahimi/([[=]+)/ 5479*22dc650dSSadaf Ebrahimi a=[b]= 5480*22dc650dSSadaf Ebrahimi 0: =[ 5481*22dc650dSSadaf Ebrahimi 1: =[ 5482*22dc650dSSadaf Ebrahimi 5483*22dc650dSSadaf Ebrahimi/([[.]+)/ 5484*22dc650dSSadaf Ebrahimi a.[b]. 5485*22dc650dSSadaf Ebrahimi 0: .[ 5486*22dc650dSSadaf Ebrahimi 1: .[ 5487*22dc650dSSadaf Ebrahimi 5488*22dc650dSSadaf Ebrahimi/((?>a+)b)/ 5489*22dc650dSSadaf Ebrahimi aaab 5490*22dc650dSSadaf Ebrahimi 0: aaab 5491*22dc650dSSadaf Ebrahimi 1: aaab 5492*22dc650dSSadaf Ebrahimi 5493*22dc650dSSadaf Ebrahimi/(?>(a+))b/ 5494*22dc650dSSadaf Ebrahimi aaab 5495*22dc650dSSadaf Ebrahimi 0: aaab 5496*22dc650dSSadaf Ebrahimi 1: aaa 5497*22dc650dSSadaf Ebrahimi 5498*22dc650dSSadaf Ebrahimi/((?>[^()]+)|\([^()]*\))+/ 5499*22dc650dSSadaf Ebrahimi ((abc(ade)ufh()()x 5500*22dc650dSSadaf Ebrahimi 0: abc(ade)ufh()()x 5501*22dc650dSSadaf Ebrahimi 1: x 5502*22dc650dSSadaf Ebrahimi 5503*22dc650dSSadaf Ebrahimi/a\Z/ 5504*22dc650dSSadaf Ebrahimi\= Expect no match 5505*22dc650dSSadaf Ebrahimi aaab 5506*22dc650dSSadaf EbrahimiNo match 5507*22dc650dSSadaf Ebrahimi a\nb\n 5508*22dc650dSSadaf EbrahimiNo match 5509*22dc650dSSadaf Ebrahimi 5510*22dc650dSSadaf Ebrahimi/b\Z/ 5511*22dc650dSSadaf Ebrahimi a\nb\n 5512*22dc650dSSadaf Ebrahimi 0: b 5513*22dc650dSSadaf Ebrahimi 5514*22dc650dSSadaf Ebrahimi/b\z/ 5515*22dc650dSSadaf Ebrahimi 5516*22dc650dSSadaf Ebrahimi/b\Z/ 5517*22dc650dSSadaf Ebrahimi a\nb 5518*22dc650dSSadaf Ebrahimi 0: b 5519*22dc650dSSadaf Ebrahimi 5520*22dc650dSSadaf Ebrahimi/b\z/ 5521*22dc650dSSadaf Ebrahimi a\nb 5522*22dc650dSSadaf Ebrahimi 0: b 5523*22dc650dSSadaf Ebrahimi 5524*22dc650dSSadaf Ebrahimi/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/ 5525*22dc650dSSadaf Ebrahimi a 5526*22dc650dSSadaf Ebrahimi 0: a 5527*22dc650dSSadaf Ebrahimi 1: 5528*22dc650dSSadaf Ebrahimi abc 5529*22dc650dSSadaf Ebrahimi 0: abc 5530*22dc650dSSadaf Ebrahimi 1: 5531*22dc650dSSadaf Ebrahimi a-b 5532*22dc650dSSadaf Ebrahimi 0: a-b 5533*22dc650dSSadaf Ebrahimi 1: 5534*22dc650dSSadaf Ebrahimi 0-9 5535*22dc650dSSadaf Ebrahimi 0: 0-9 5536*22dc650dSSadaf Ebrahimi 1: 5537*22dc650dSSadaf Ebrahimi a.b 5538*22dc650dSSadaf Ebrahimi 0: a.b 5539*22dc650dSSadaf Ebrahimi 1: 5540*22dc650dSSadaf Ebrahimi 5.6.7 5541*22dc650dSSadaf Ebrahimi 0: 5.6.7 5542*22dc650dSSadaf Ebrahimi 1: 5543*22dc650dSSadaf Ebrahimi the.quick.brown.fox 5544*22dc650dSSadaf Ebrahimi 0: the.quick.brown.fox 5545*22dc650dSSadaf Ebrahimi 1: 5546*22dc650dSSadaf Ebrahimi a100.b200.300c 5547*22dc650dSSadaf Ebrahimi 0: a100.b200.300c 5548*22dc650dSSadaf Ebrahimi 1: 5549*22dc650dSSadaf Ebrahimi 12-ab.1245 5550*22dc650dSSadaf Ebrahimi 0: 12-ab.1245 5551*22dc650dSSadaf Ebrahimi 1: 5552*22dc650dSSadaf Ebrahimi\= Expect no match 5553*22dc650dSSadaf Ebrahimi \ 5554*22dc650dSSadaf EbrahimiNo match 5555*22dc650dSSadaf Ebrahimi .a 5556*22dc650dSSadaf EbrahimiNo match 5557*22dc650dSSadaf Ebrahimi -a 5558*22dc650dSSadaf EbrahimiNo match 5559*22dc650dSSadaf Ebrahimi a- 5560*22dc650dSSadaf EbrahimiNo match 5561*22dc650dSSadaf Ebrahimi a. 5562*22dc650dSSadaf EbrahimiNo match 5563*22dc650dSSadaf Ebrahimi a_b 5564*22dc650dSSadaf EbrahimiNo match 5565*22dc650dSSadaf Ebrahimi a.- 5566*22dc650dSSadaf EbrahimiNo match 5567*22dc650dSSadaf Ebrahimi a.. 5568*22dc650dSSadaf EbrahimiNo match 5569*22dc650dSSadaf Ebrahimi ab..bc 5570*22dc650dSSadaf EbrahimiNo match 5571*22dc650dSSadaf Ebrahimi the.quick.brown.fox- 5572*22dc650dSSadaf EbrahimiNo match 5573*22dc650dSSadaf Ebrahimi the.quick.brown.fox. 5574*22dc650dSSadaf EbrahimiNo match 5575*22dc650dSSadaf Ebrahimi the.quick.brown.fox_ 5576*22dc650dSSadaf EbrahimiNo match 5577*22dc650dSSadaf Ebrahimi the.quick.brown.fox+ 5578*22dc650dSSadaf EbrahimiNo match 5579*22dc650dSSadaf Ebrahimi 5580*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd|wxyz))/ 5581*22dc650dSSadaf Ebrahimi alphabetabcd 5582*22dc650dSSadaf Ebrahimi 0: alphabetabcd 5583*22dc650dSSadaf Ebrahimi 1: abcd 5584*22dc650dSSadaf Ebrahimi endingwxyz 5585*22dc650dSSadaf Ebrahimi 0: endingwxyz 5586*22dc650dSSadaf Ebrahimi 1: wxyz 5587*22dc650dSSadaf Ebrahimi\= Expect no match 5588*22dc650dSSadaf Ebrahimi a rather long string that doesn't end with one of them 5589*22dc650dSSadaf EbrahimiNo match 5590*22dc650dSSadaf Ebrahimi 5591*22dc650dSSadaf Ebrahimi/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ 5592*22dc650dSSadaf Ebrahimi word cat dog elephant mussel cow horse canary baboon snake shark otherword 5593*22dc650dSSadaf Ebrahimi 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword 5594*22dc650dSSadaf Ebrahimi\= Expect no match 5595*22dc650dSSadaf Ebrahimi word cat dog elephant mussel cow horse canary baboon snake shark 5596*22dc650dSSadaf EbrahimiNo match 5597*22dc650dSSadaf Ebrahimi 5598*22dc650dSSadaf Ebrahimi/word (?>[a-zA-Z0-9]+ ){0,30}otherword/ 5599*22dc650dSSadaf Ebrahimi\= Expect no match 5600*22dc650dSSadaf Ebrahimi 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 5601*22dc650dSSadaf EbrahimiNo match 5602*22dc650dSSadaf Ebrahimi 5603*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999))foo/ 5604*22dc650dSSadaf Ebrahimi 999foo 5605*22dc650dSSadaf Ebrahimi 0: foo 5606*22dc650dSSadaf Ebrahimi 123999foo 5607*22dc650dSSadaf Ebrahimi 0: foo 5608*22dc650dSSadaf Ebrahimi\= Expect no match 5609*22dc650dSSadaf Ebrahimi 123abcfoo 5610*22dc650dSSadaf EbrahimiNo match 5611*22dc650dSSadaf Ebrahimi 5612*22dc650dSSadaf Ebrahimi/(?<=(?!...999)\d{3})foo/ 5613*22dc650dSSadaf Ebrahimi 999foo 5614*22dc650dSSadaf Ebrahimi 0: foo 5615*22dc650dSSadaf Ebrahimi 123999foo 5616*22dc650dSSadaf Ebrahimi 0: foo 5617*22dc650dSSadaf Ebrahimi\= Expect no match 5618*22dc650dSSadaf Ebrahimi 123abcfoo 5619*22dc650dSSadaf EbrahimiNo match 5620*22dc650dSSadaf Ebrahimi 5621*22dc650dSSadaf Ebrahimi/(?<=\d{3}(?!999)...)foo/ 5622*22dc650dSSadaf Ebrahimi 123abcfoo 5623*22dc650dSSadaf Ebrahimi 0: foo 5624*22dc650dSSadaf Ebrahimi 123456foo 5625*22dc650dSSadaf Ebrahimi 0: foo 5626*22dc650dSSadaf Ebrahimi\= Expect no match 5627*22dc650dSSadaf Ebrahimi 123999foo 5628*22dc650dSSadaf EbrahimiNo match 5629*22dc650dSSadaf Ebrahimi 5630*22dc650dSSadaf Ebrahimi/(?<=\d{3}...)(?<!999)foo/ 5631*22dc650dSSadaf Ebrahimi 123abcfoo 5632*22dc650dSSadaf Ebrahimi 0: foo 5633*22dc650dSSadaf Ebrahimi 123456foo 5634*22dc650dSSadaf Ebrahimi 0: foo 5635*22dc650dSSadaf Ebrahimi\= Expect no match 5636*22dc650dSSadaf Ebrahimi 123999foo 5637*22dc650dSSadaf EbrahimiNo match 5638*22dc650dSSadaf Ebrahimi 5639*22dc650dSSadaf Ebrahimi/<a[\s]+href[\s]*=[\s]* # find <a href= 5640*22dc650dSSadaf Ebrahimi ([\"\'])? # find single or double quote 5641*22dc650dSSadaf Ebrahimi (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 5642*22dc650dSSadaf Ebrahimi # quote, otherwise match up to next space 5643*22dc650dSSadaf Ebrahimi/isx 5644*22dc650dSSadaf Ebrahimi <a href=abcd xyz 5645*22dc650dSSadaf Ebrahimi 0: <a href=abcd 5646*22dc650dSSadaf Ebrahimi 1: <unset> 5647*22dc650dSSadaf Ebrahimi 2: <unset> 5648*22dc650dSSadaf Ebrahimi 3: abcd 5649*22dc650dSSadaf Ebrahimi <a href=\"abcd xyz pqr\" cats 5650*22dc650dSSadaf Ebrahimi 0: <a href="abcd xyz pqr" 5651*22dc650dSSadaf Ebrahimi 1: " 5652*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5653*22dc650dSSadaf Ebrahimi <a href=\'abcd xyz pqr\' cats 5654*22dc650dSSadaf Ebrahimi 0: <a href='abcd xyz pqr' 5655*22dc650dSSadaf Ebrahimi 1: ' 5656*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5657*22dc650dSSadaf Ebrahimi 5658*22dc650dSSadaf Ebrahimi/<a\s+href\s*=\s* # find <a href= 5659*22dc650dSSadaf Ebrahimi (["'])? # find single or double quote 5660*22dc650dSSadaf Ebrahimi (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching 5661*22dc650dSSadaf Ebrahimi # quote, otherwise match up to next space 5662*22dc650dSSadaf Ebrahimi/isx 5663*22dc650dSSadaf Ebrahimi <a href=abcd xyz 5664*22dc650dSSadaf Ebrahimi 0: <a href=abcd 5665*22dc650dSSadaf Ebrahimi 1: <unset> 5666*22dc650dSSadaf Ebrahimi 2: <unset> 5667*22dc650dSSadaf Ebrahimi 3: abcd 5668*22dc650dSSadaf Ebrahimi <a href=\"abcd xyz pqr\" cats 5669*22dc650dSSadaf Ebrahimi 0: <a href="abcd xyz pqr" 5670*22dc650dSSadaf Ebrahimi 1: " 5671*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5672*22dc650dSSadaf Ebrahimi <a href = \'abcd xyz pqr\' cats 5673*22dc650dSSadaf Ebrahimi 0: <a href = 'abcd xyz pqr' 5674*22dc650dSSadaf Ebrahimi 1: ' 5675*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5676*22dc650dSSadaf Ebrahimi 5677*22dc650dSSadaf Ebrahimi/<a\s+href(?>\s*)=(?>\s*) # find <a href= 5678*22dc650dSSadaf Ebrahimi (["'])? # find single or double quote 5679*22dc650dSSadaf Ebrahimi (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching 5680*22dc650dSSadaf Ebrahimi # quote, otherwise match up to next space 5681*22dc650dSSadaf Ebrahimi/isx 5682*22dc650dSSadaf Ebrahimi <a href=abcd xyz 5683*22dc650dSSadaf Ebrahimi 0: <a href=abcd 5684*22dc650dSSadaf Ebrahimi 1: <unset> 5685*22dc650dSSadaf Ebrahimi 2: <unset> 5686*22dc650dSSadaf Ebrahimi 3: abcd 5687*22dc650dSSadaf Ebrahimi <a href=\"abcd xyz pqr\" cats 5688*22dc650dSSadaf Ebrahimi 0: <a href="abcd xyz pqr" 5689*22dc650dSSadaf Ebrahimi 1: " 5690*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5691*22dc650dSSadaf Ebrahimi <a href = \'abcd xyz pqr\' cats 5692*22dc650dSSadaf Ebrahimi 0: <a href = 'abcd xyz pqr' 5693*22dc650dSSadaf Ebrahimi 1: ' 5694*22dc650dSSadaf Ebrahimi 2: abcd xyz pqr 5695*22dc650dSSadaf Ebrahimi 5696*22dc650dSSadaf Ebrahimi/(Z()|A)*/ 5697*22dc650dSSadaf Ebrahimi ZABCDEFG 5698*22dc650dSSadaf Ebrahimi 0: ZA 5699*22dc650dSSadaf Ebrahimi 1: A 5700*22dc650dSSadaf Ebrahimi 2: 5701*22dc650dSSadaf Ebrahimi 5702*22dc650dSSadaf Ebrahimi/(Z(())|A)*/ 5703*22dc650dSSadaf Ebrahimi ZABCDEFG 5704*22dc650dSSadaf Ebrahimi 0: ZA 5705*22dc650dSSadaf Ebrahimi 1: A 5706*22dc650dSSadaf Ebrahimi 2: 5707*22dc650dSSadaf Ebrahimi 3: 5708*22dc650dSSadaf Ebrahimi 5709*22dc650dSSadaf Ebrahimi/((?>Z)+|A)*/ 5710*22dc650dSSadaf Ebrahimi ZABCDEFG 5711*22dc650dSSadaf Ebrahimi 0: ZA 5712*22dc650dSSadaf Ebrahimi 1: A 5713*22dc650dSSadaf Ebrahimi 5714*22dc650dSSadaf Ebrahimi/((?>)+|A)*/ 5715*22dc650dSSadaf Ebrahimi ZABCDEFG 5716*22dc650dSSadaf Ebrahimi 0: 5717*22dc650dSSadaf Ebrahimi 1: 5718*22dc650dSSadaf Ebrahimi 5719*22dc650dSSadaf Ebrahimi/a*/g 5720*22dc650dSSadaf Ebrahimi abbab 5721*22dc650dSSadaf Ebrahimi 0: a 5722*22dc650dSSadaf Ebrahimi 0: 5723*22dc650dSSadaf Ebrahimi 0: 5724*22dc650dSSadaf Ebrahimi 0: a 5725*22dc650dSSadaf Ebrahimi 0: 5726*22dc650dSSadaf Ebrahimi 0: 5727*22dc650dSSadaf Ebrahimi 5728*22dc650dSSadaf Ebrahimi/[[:space:]]+/ 5729*22dc650dSSadaf Ebrahimi > \x09\x0a\x0c\x0d\x0b< 5730*22dc650dSSadaf Ebrahimi 0: \x09\x0a\x0c\x0d\x0b 5731*22dc650dSSadaf Ebrahimi 5732*22dc650dSSadaf Ebrahimi/[[:blank:]]+/ 5733*22dc650dSSadaf Ebrahimi > \x09\x0a\x0c\x0d\x0b< 5734*22dc650dSSadaf Ebrahimi 0: \x09 5735*22dc650dSSadaf Ebrahimi 5736*22dc650dSSadaf Ebrahimi/[\s]+/ 5737*22dc650dSSadaf Ebrahimi > \x09\x0a\x0c\x0d\x0b< 5738*22dc650dSSadaf Ebrahimi 0: \x09\x0a\x0c\x0d\x0b 5739*22dc650dSSadaf Ebrahimi 5740*22dc650dSSadaf Ebrahimi/\s+/ 5741*22dc650dSSadaf Ebrahimi > \x09\x0a\x0c\x0d\x0b< 5742*22dc650dSSadaf Ebrahimi 0: \x09\x0a\x0c\x0d\x0b 5743*22dc650dSSadaf Ebrahimi 5744*22dc650dSSadaf Ebrahimi/ab/x 5745*22dc650dSSadaf Ebrahimi ab 5746*22dc650dSSadaf Ebrahimi 0: ab 5747*22dc650dSSadaf Ebrahimi 5748*22dc650dSSadaf Ebrahimi/(?!\A)x/m 5749*22dc650dSSadaf Ebrahimi a\nxb\n 5750*22dc650dSSadaf Ebrahimi 0: x 5751*22dc650dSSadaf Ebrahimi 5752*22dc650dSSadaf Ebrahimi/(?!^)x/m 5753*22dc650dSSadaf Ebrahimi\= Expect no match 5754*22dc650dSSadaf Ebrahimi a\nxb\n 5755*22dc650dSSadaf EbrahimiNo match 5756*22dc650dSSadaf Ebrahimi 5757*22dc650dSSadaf Ebrahimi/abc\Qabc\Eabc/ 5758*22dc650dSSadaf Ebrahimi abcabcabc 5759*22dc650dSSadaf Ebrahimi 0: abcabcabc 5760*22dc650dSSadaf Ebrahimi 5761*22dc650dSSadaf Ebrahimi/abc\Q(*+|\Eabc/ 5762*22dc650dSSadaf Ebrahimi abc(*+|abc 5763*22dc650dSSadaf Ebrahimi 0: abc(*+|abc 5764*22dc650dSSadaf Ebrahimi 5765*22dc650dSSadaf Ebrahimi/ abc\Q abc\Eabc/x 5766*22dc650dSSadaf Ebrahimi abc abcabc 5767*22dc650dSSadaf Ebrahimi 0: abc abcabc 5768*22dc650dSSadaf Ebrahimi\= Expect no match 5769*22dc650dSSadaf Ebrahimi abcabcabc 5770*22dc650dSSadaf EbrahimiNo match 5771*22dc650dSSadaf Ebrahimi 5772*22dc650dSSadaf Ebrahimi/abc#comment 5773*22dc650dSSadaf Ebrahimi \Q#not comment 5774*22dc650dSSadaf Ebrahimi literal\E/x 5775*22dc650dSSadaf Ebrahimi abc#not comment\n literal 5776*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a literal 5777*22dc650dSSadaf Ebrahimi 5778*22dc650dSSadaf Ebrahimi/abc#comment 5779*22dc650dSSadaf Ebrahimi \Q#not comment 5780*22dc650dSSadaf Ebrahimi literal/x 5781*22dc650dSSadaf Ebrahimi abc#not comment\n literal 5782*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a literal 5783*22dc650dSSadaf Ebrahimi 5784*22dc650dSSadaf Ebrahimi/abc#comment 5785*22dc650dSSadaf Ebrahimi \Q#not comment 5786*22dc650dSSadaf Ebrahimi literal\E #more comment 5787*22dc650dSSadaf Ebrahimi /x 5788*22dc650dSSadaf Ebrahimi abc#not comment\n literal 5789*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a literal 5790*22dc650dSSadaf Ebrahimi 5791*22dc650dSSadaf Ebrahimi/abc#comment 5792*22dc650dSSadaf Ebrahimi \Q#not comment 5793*22dc650dSSadaf Ebrahimi literal\E #more comment/x 5794*22dc650dSSadaf Ebrahimi abc#not comment\n literal 5795*22dc650dSSadaf Ebrahimi 0: abc#not comment\x0a literal 5796*22dc650dSSadaf Ebrahimi 5797*22dc650dSSadaf Ebrahimi/\Qabc\$xyz\E/ 5798*22dc650dSSadaf Ebrahimi abc\\\$xyz 5799*22dc650dSSadaf Ebrahimi 0: abc\$xyz 5800*22dc650dSSadaf Ebrahimi 5801*22dc650dSSadaf Ebrahimi/\Qabc\E\$\Qxyz\E/ 5802*22dc650dSSadaf Ebrahimi abc\$xyz 5803*22dc650dSSadaf Ebrahimi 0: abc$xyz 5804*22dc650dSSadaf Ebrahimi 5805*22dc650dSSadaf Ebrahimi/\Gabc/ 5806*22dc650dSSadaf Ebrahimi abc 5807*22dc650dSSadaf Ebrahimi 0: abc 5808*22dc650dSSadaf Ebrahimi\= Expect no match 5809*22dc650dSSadaf Ebrahimi xyzabc 5810*22dc650dSSadaf EbrahimiNo match 5811*22dc650dSSadaf Ebrahimi 5812*22dc650dSSadaf Ebrahimi/\Gabc./g 5813*22dc650dSSadaf Ebrahimi abc1abc2xyzabc3 5814*22dc650dSSadaf Ebrahimi 0: abc1 5815*22dc650dSSadaf Ebrahimi 0: abc2 5816*22dc650dSSadaf Ebrahimi 5817*22dc650dSSadaf Ebrahimi/abc./g 5818*22dc650dSSadaf Ebrahimi abc1abc2xyzabc3 5819*22dc650dSSadaf Ebrahimi 0: abc1 5820*22dc650dSSadaf Ebrahimi 0: abc2 5821*22dc650dSSadaf Ebrahimi 0: abc3 5822*22dc650dSSadaf Ebrahimi 5823*22dc650dSSadaf Ebrahimi/a(?x: b c )d/ 5824*22dc650dSSadaf Ebrahimi XabcdY 5825*22dc650dSSadaf Ebrahimi 0: abcd 5826*22dc650dSSadaf Ebrahimi\= Expect no match 5827*22dc650dSSadaf Ebrahimi Xa b c d Y 5828*22dc650dSSadaf EbrahimiNo match 5829*22dc650dSSadaf Ebrahimi 5830*22dc650dSSadaf Ebrahimi/((?x)x y z | a b c)/ 5831*22dc650dSSadaf Ebrahimi XabcY 5832*22dc650dSSadaf Ebrahimi 0: abc 5833*22dc650dSSadaf Ebrahimi 1: abc 5834*22dc650dSSadaf Ebrahimi AxyzB 5835*22dc650dSSadaf Ebrahimi 0: xyz 5836*22dc650dSSadaf Ebrahimi 1: xyz 5837*22dc650dSSadaf Ebrahimi 5838*22dc650dSSadaf Ebrahimi/(?i)AB(?-i)C/ 5839*22dc650dSSadaf Ebrahimi XabCY 5840*22dc650dSSadaf Ebrahimi 0: abC 5841*22dc650dSSadaf Ebrahimi\= Expect no match 5842*22dc650dSSadaf Ebrahimi XabcY 5843*22dc650dSSadaf EbrahimiNo match 5844*22dc650dSSadaf Ebrahimi 5845*22dc650dSSadaf Ebrahimi/((?i)AB(?-i)C|D)E/ 5846*22dc650dSSadaf Ebrahimi abCE 5847*22dc650dSSadaf Ebrahimi 0: abCE 5848*22dc650dSSadaf Ebrahimi 1: abC 5849*22dc650dSSadaf Ebrahimi DE 5850*22dc650dSSadaf Ebrahimi 0: DE 5851*22dc650dSSadaf Ebrahimi 1: D 5852*22dc650dSSadaf Ebrahimi\= Expect no match 5853*22dc650dSSadaf Ebrahimi abcE 5854*22dc650dSSadaf EbrahimiNo match 5855*22dc650dSSadaf Ebrahimi abCe 5856*22dc650dSSadaf EbrahimiNo match 5857*22dc650dSSadaf Ebrahimi dE 5858*22dc650dSSadaf EbrahimiNo match 5859*22dc650dSSadaf Ebrahimi De 5860*22dc650dSSadaf EbrahimiNo match 5861*22dc650dSSadaf Ebrahimi 5862*22dc650dSSadaf Ebrahimi/(.*)\d+\1/ 5863*22dc650dSSadaf Ebrahimi abc123abc 5864*22dc650dSSadaf Ebrahimi 0: abc123abc 5865*22dc650dSSadaf Ebrahimi 1: abc 5866*22dc650dSSadaf Ebrahimi abc123bc 5867*22dc650dSSadaf Ebrahimi 0: bc123bc 5868*22dc650dSSadaf Ebrahimi 1: bc 5869*22dc650dSSadaf Ebrahimi 5870*22dc650dSSadaf Ebrahimi/(.*)\d+\1/s 5871*22dc650dSSadaf Ebrahimi abc123abc 5872*22dc650dSSadaf Ebrahimi 0: abc123abc 5873*22dc650dSSadaf Ebrahimi 1: abc 5874*22dc650dSSadaf Ebrahimi abc123bc 5875*22dc650dSSadaf Ebrahimi 0: bc123bc 5876*22dc650dSSadaf Ebrahimi 1: bc 5877*22dc650dSSadaf Ebrahimi 5878*22dc650dSSadaf Ebrahimi/((.*))\d+\1/ 5879*22dc650dSSadaf Ebrahimi abc123abc 5880*22dc650dSSadaf Ebrahimi 0: abc123abc 5881*22dc650dSSadaf Ebrahimi 1: abc 5882*22dc650dSSadaf Ebrahimi 2: abc 5883*22dc650dSSadaf Ebrahimi abc123bc 5884*22dc650dSSadaf Ebrahimi 0: bc123bc 5885*22dc650dSSadaf Ebrahimi 1: bc 5886*22dc650dSSadaf Ebrahimi 2: bc 5887*22dc650dSSadaf Ebrahimi 5888*22dc650dSSadaf Ebrahimi# This tests for an IPv6 address in the form where it can have up to 5889*22dc650dSSadaf Ebrahimi# eight components, one and only one of which is empty. This must be 5890*22dc650dSSadaf Ebrahimi# an internal component. 5891*22dc650dSSadaf Ebrahimi 5892*22dc650dSSadaf Ebrahimi/^(?!:) # colon disallowed at start 5893*22dc650dSSadaf Ebrahimi (?: # start of item 5894*22dc650dSSadaf Ebrahimi (?: [0-9a-f]{1,4} | # 1-4 hex digits or 5895*22dc650dSSadaf Ebrahimi (?(1)0 | () ) ) # if null previously matched, fail; else null 5896*22dc650dSSadaf Ebrahimi : # followed by colon 5897*22dc650dSSadaf Ebrahimi ){1,7} # end item; 1-7 of them required 5898*22dc650dSSadaf Ebrahimi [0-9a-f]{1,4} $ # final hex number at end of string 5899*22dc650dSSadaf Ebrahimi (?(1)|.) # check that there was an empty component 5900*22dc650dSSadaf Ebrahimi /ix 5901*22dc650dSSadaf Ebrahimi a123::a123 5902*22dc650dSSadaf Ebrahimi 0: a123::a123 5903*22dc650dSSadaf Ebrahimi 1: 5904*22dc650dSSadaf Ebrahimi a123:b342::abcd 5905*22dc650dSSadaf Ebrahimi 0: a123:b342::abcd 5906*22dc650dSSadaf Ebrahimi 1: 5907*22dc650dSSadaf Ebrahimi a123:b342::324e:abcd 5908*22dc650dSSadaf Ebrahimi 0: a123:b342::324e:abcd 5909*22dc650dSSadaf Ebrahimi 1: 5910*22dc650dSSadaf Ebrahimi a123:ddde:b342::324e:abcd 5911*22dc650dSSadaf Ebrahimi 0: a123:ddde:b342::324e:abcd 5912*22dc650dSSadaf Ebrahimi 1: 5913*22dc650dSSadaf Ebrahimi a123:ddde:b342::324e:dcba:abcd 5914*22dc650dSSadaf Ebrahimi 0: a123:ddde:b342::324e:dcba:abcd 5915*22dc650dSSadaf Ebrahimi 1: 5916*22dc650dSSadaf Ebrahimi a123:ddde:9999:b342::324e:dcba:abcd 5917*22dc650dSSadaf Ebrahimi 0: a123:ddde:9999:b342::324e:dcba:abcd 5918*22dc650dSSadaf Ebrahimi 1: 5919*22dc650dSSadaf Ebrahimi\= Expect no match 5920*22dc650dSSadaf Ebrahimi 1:2:3:4:5:6:7:8 5921*22dc650dSSadaf EbrahimiNo match 5922*22dc650dSSadaf Ebrahimi a123:bce:ddde:9999:b342::324e:dcba:abcd 5923*22dc650dSSadaf EbrahimiNo match 5924*22dc650dSSadaf Ebrahimi a123::9999:b342::324e:dcba:abcd 5925*22dc650dSSadaf EbrahimiNo match 5926*22dc650dSSadaf Ebrahimi abcde:2:3:4:5:6:7:8 5927*22dc650dSSadaf EbrahimiNo match 5928*22dc650dSSadaf Ebrahimi ::1 5929*22dc650dSSadaf EbrahimiNo match 5930*22dc650dSSadaf Ebrahimi abcd:fee0:123:: 5931*22dc650dSSadaf EbrahimiNo match 5932*22dc650dSSadaf Ebrahimi :1 5933*22dc650dSSadaf EbrahimiNo match 5934*22dc650dSSadaf Ebrahimi 1: 5935*22dc650dSSadaf EbrahimiNo match 5936*22dc650dSSadaf Ebrahimi 5937*22dc650dSSadaf Ebrahimi/[z\Qa-d]\E]/ 5938*22dc650dSSadaf Ebrahimi z 5939*22dc650dSSadaf Ebrahimi 0: z 5940*22dc650dSSadaf Ebrahimi a 5941*22dc650dSSadaf Ebrahimi 0: a 5942*22dc650dSSadaf Ebrahimi - 5943*22dc650dSSadaf Ebrahimi 0: - 5944*22dc650dSSadaf Ebrahimi d 5945*22dc650dSSadaf Ebrahimi 0: d 5946*22dc650dSSadaf Ebrahimi ] 5947*22dc650dSSadaf Ebrahimi 0: ] 5948*22dc650dSSadaf Ebrahimi\= Expect no match 5949*22dc650dSSadaf Ebrahimi b 5950*22dc650dSSadaf EbrahimiNo match 5951*22dc650dSSadaf Ebrahimi 5952*22dc650dSSadaf Ebrahimi/(a+)*b/ 5953*22dc650dSSadaf Ebrahimi\= Expect no match 5954*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5955*22dc650dSSadaf EbrahimiNo match 5956*22dc650dSSadaf Ebrahimi 5957*22dc650dSSadaf Ebrahimi/(?i)reg(?:ul(?:[a�]|ae)r|ex)/ 5958*22dc650dSSadaf Ebrahimi REGular 5959*22dc650dSSadaf Ebrahimi 0: REGular 5960*22dc650dSSadaf Ebrahimi regulaer 5961*22dc650dSSadaf Ebrahimi 0: regulaer 5962*22dc650dSSadaf Ebrahimi Regex 5963*22dc650dSSadaf Ebrahimi 0: Regex 5964*22dc650dSSadaf Ebrahimi regul�r 5965*22dc650dSSadaf Ebrahimi 0: regul\xe4r 5966*22dc650dSSadaf Ebrahimi 5967*22dc650dSSadaf Ebrahimi/����[�-��-�]+/ 5968*22dc650dSSadaf Ebrahimi ����� 5969*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xe0 5970*22dc650dSSadaf Ebrahimi ����� 5971*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xff 5972*22dc650dSSadaf Ebrahimi ����� 5973*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xc0 5974*22dc650dSSadaf Ebrahimi ����� 5975*22dc650dSSadaf Ebrahimi 0: \xc5\xe6\xe5\xe4\xdf 5976*22dc650dSSadaf Ebrahimi 5977*22dc650dSSadaf Ebrahimi/(?<=Z)X./ 5978*22dc650dSSadaf Ebrahimi \x84XAZXB 5979*22dc650dSSadaf Ebrahimi 0: XB 5980*22dc650dSSadaf Ebrahimi 5981*22dc650dSSadaf Ebrahimi/ab cd (?x) de fg/ 5982*22dc650dSSadaf Ebrahimi ab cd defg 5983*22dc650dSSadaf Ebrahimi 0: ab cd defg 5984*22dc650dSSadaf Ebrahimi 5985*22dc650dSSadaf Ebrahimi/ab cd(?x) de fg/ 5986*22dc650dSSadaf Ebrahimi ab cddefg 5987*22dc650dSSadaf Ebrahimi 0: ab cddefg 5988*22dc650dSSadaf Ebrahimi\= Expect no match 5989*22dc650dSSadaf Ebrahimi abcddefg 5990*22dc650dSSadaf EbrahimiNo match 5991*22dc650dSSadaf Ebrahimi 5992*22dc650dSSadaf Ebrahimi/(?<![^f]oo)(bar)/ 5993*22dc650dSSadaf Ebrahimi foobarX 5994*22dc650dSSadaf Ebrahimi 0: bar 5995*22dc650dSSadaf Ebrahimi 1: bar 5996*22dc650dSSadaf Ebrahimi\= Expect no match 5997*22dc650dSSadaf Ebrahimi boobarX 5998*22dc650dSSadaf EbrahimiNo match 5999*22dc650dSSadaf Ebrahimi 6000*22dc650dSSadaf Ebrahimi/(?<![^f])X/ 6001*22dc650dSSadaf Ebrahimi offX 6002*22dc650dSSadaf Ebrahimi 0: X 6003*22dc650dSSadaf Ebrahimi\= Expect no match 6004*22dc650dSSadaf Ebrahimi onyX 6005*22dc650dSSadaf EbrahimiNo match 6006*22dc650dSSadaf Ebrahimi 6007*22dc650dSSadaf Ebrahimi/(?<=[^f])X/ 6008*22dc650dSSadaf Ebrahimi onyX 6009*22dc650dSSadaf Ebrahimi 0: X 6010*22dc650dSSadaf Ebrahimi\= Expect no match 6011*22dc650dSSadaf Ebrahimi offX 6012*22dc650dSSadaf EbrahimiNo match 6013*22dc650dSSadaf Ebrahimi 6014*22dc650dSSadaf Ebrahimi/^/gm 6015*22dc650dSSadaf Ebrahimi a\nb\nc\n 6016*22dc650dSSadaf Ebrahimi 0: 6017*22dc650dSSadaf Ebrahimi 0: 6018*22dc650dSSadaf Ebrahimi 0: 6019*22dc650dSSadaf Ebrahimi \ 6020*22dc650dSSadaf Ebrahimi 0: 6021*22dc650dSSadaf Ebrahimi 6022*22dc650dSSadaf Ebrahimi/(?<=C\n)^/gm 6023*22dc650dSSadaf Ebrahimi A\nC\nC\n 6024*22dc650dSSadaf Ebrahimi 0: 6025*22dc650dSSadaf Ebrahimi 6026*22dc650dSSadaf Ebrahimi/(?:(?(1)a|b)(X))+/ 6027*22dc650dSSadaf Ebrahimi bXaX 6028*22dc650dSSadaf Ebrahimi 0: bXaX 6029*22dc650dSSadaf Ebrahimi 1: X 6030*22dc650dSSadaf Ebrahimi 6031*22dc650dSSadaf Ebrahimi/(?:(?(1)\1a|b)(X|Y))+/ 6032*22dc650dSSadaf Ebrahimi bXXaYYaY 6033*22dc650dSSadaf Ebrahimi 0: bXXaYYaY 6034*22dc650dSSadaf Ebrahimi 1: Y 6035*22dc650dSSadaf Ebrahimi bXYaXXaX 6036*22dc650dSSadaf Ebrahimi 0: bX 6037*22dc650dSSadaf Ebrahimi 1: X 6038*22dc650dSSadaf Ebrahimi 6039*22dc650dSSadaf Ebrahimi/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/ 6040*22dc650dSSadaf Ebrahimi bXXaYYaY 6041*22dc650dSSadaf Ebrahimi 0: bX 6042*22dc650dSSadaf Ebrahimi 1: 6043*22dc650dSSadaf Ebrahimi 2: 6044*22dc650dSSadaf Ebrahimi 3: 6045*22dc650dSSadaf Ebrahimi 4: 6046*22dc650dSSadaf Ebrahimi 5: 6047*22dc650dSSadaf Ebrahimi 6: 6048*22dc650dSSadaf Ebrahimi 7: 6049*22dc650dSSadaf Ebrahimi 8: 6050*22dc650dSSadaf Ebrahimi 9: 6051*22dc650dSSadaf Ebrahimi10: X 6052*22dc650dSSadaf Ebrahimi 6053*22dc650dSSadaf Ebrahimi/[[,abc,]+]/ 6054*22dc650dSSadaf Ebrahimi abc] 6055*22dc650dSSadaf Ebrahimi 0: abc] 6056*22dc650dSSadaf Ebrahimi a,b] 6057*22dc650dSSadaf Ebrahimi 0: a,b] 6058*22dc650dSSadaf Ebrahimi [a,b,c] 6059*22dc650dSSadaf Ebrahimi 0: [a,b,c] 6060*22dc650dSSadaf Ebrahimi 6061*22dc650dSSadaf Ebrahimi/(?-x: )/x 6062*22dc650dSSadaf Ebrahimi A\x20B 6063*22dc650dSSadaf Ebrahimi 0: 6064*22dc650dSSadaf Ebrahimi 6065*22dc650dSSadaf Ebrahimi/(?x)(?-x: \s*#\s*)/ 6066*22dc650dSSadaf Ebrahimi A # B 6067*22dc650dSSadaf Ebrahimi 0: # 6068*22dc650dSSadaf Ebrahimi\= Expect no match 6069*22dc650dSSadaf Ebrahimi # 6070*22dc650dSSadaf EbrahimiNo match 6071*22dc650dSSadaf Ebrahimi A s#s B 6072*22dc650dSSadaf EbrahimiNo match 6073*22dc650dSSadaf Ebrahimi 6074*22dc650dSSadaf Ebrahimi/(?x-is)(?:(?-ixs) \s*#\s*) include/ 6075*22dc650dSSadaf Ebrahimi A #include 6076*22dc650dSSadaf Ebrahimi 0: #include 6077*22dc650dSSadaf Ebrahimi\= Expect no match 6078*22dc650dSSadaf Ebrahimi A#include 6079*22dc650dSSadaf EbrahimiNo match 6080*22dc650dSSadaf Ebrahimi A #Include 6081*22dc650dSSadaf EbrahimiNo match 6082*22dc650dSSadaf Ebrahimi 6083*22dc650dSSadaf Ebrahimi/a*b*\w/ 6084*22dc650dSSadaf Ebrahimi aaabbbb 6085*22dc650dSSadaf Ebrahimi 0: aaabbbb 6086*22dc650dSSadaf Ebrahimi aaaa 6087*22dc650dSSadaf Ebrahimi 0: aaaa 6088*22dc650dSSadaf Ebrahimi a 6089*22dc650dSSadaf Ebrahimi 0: a 6090*22dc650dSSadaf Ebrahimi 6091*22dc650dSSadaf Ebrahimi/a*b?\w/ 6092*22dc650dSSadaf Ebrahimi aaabbbb 6093*22dc650dSSadaf Ebrahimi 0: aaabb 6094*22dc650dSSadaf Ebrahimi aaaa 6095*22dc650dSSadaf Ebrahimi 0: aaaa 6096*22dc650dSSadaf Ebrahimi a 6097*22dc650dSSadaf Ebrahimi 0: a 6098*22dc650dSSadaf Ebrahimi 6099*22dc650dSSadaf Ebrahimi/a*b{0,4}\w/ 6100*22dc650dSSadaf Ebrahimi aaabbbb 6101*22dc650dSSadaf Ebrahimi 0: aaabbbb 6102*22dc650dSSadaf Ebrahimi aaaa 6103*22dc650dSSadaf Ebrahimi 0: aaaa 6104*22dc650dSSadaf Ebrahimi a 6105*22dc650dSSadaf Ebrahimi 0: a 6106*22dc650dSSadaf Ebrahimi 6107*22dc650dSSadaf Ebrahimi/a*b{0,}\w/ 6108*22dc650dSSadaf Ebrahimi aaabbbb 6109*22dc650dSSadaf Ebrahimi 0: aaabbbb 6110*22dc650dSSadaf Ebrahimi aaaa 6111*22dc650dSSadaf Ebrahimi 0: aaaa 6112*22dc650dSSadaf Ebrahimi a 6113*22dc650dSSadaf Ebrahimi 0: a 6114*22dc650dSSadaf Ebrahimi 6115*22dc650dSSadaf Ebrahimi/a*\d*\w/ 6116*22dc650dSSadaf Ebrahimi 0a 6117*22dc650dSSadaf Ebrahimi 0: 0a 6118*22dc650dSSadaf Ebrahimi a 6119*22dc650dSSadaf Ebrahimi 0: a 6120*22dc650dSSadaf Ebrahimi 6121*22dc650dSSadaf Ebrahimi/a*b *\w/x 6122*22dc650dSSadaf Ebrahimi a 6123*22dc650dSSadaf Ebrahimi 0: a 6124*22dc650dSSadaf Ebrahimi 6125*22dc650dSSadaf Ebrahimi/a*b#comment 6126*22dc650dSSadaf Ebrahimi *\w/x 6127*22dc650dSSadaf Ebrahimi a 6128*22dc650dSSadaf Ebrahimi 0: a 6129*22dc650dSSadaf Ebrahimi 6130*22dc650dSSadaf Ebrahimi/a* b *\w/x 6131*22dc650dSSadaf Ebrahimi a 6132*22dc650dSSadaf Ebrahimi 0: a 6133*22dc650dSSadaf Ebrahimi 6134*22dc650dSSadaf Ebrahimi/^\w+=.*(\\\n.*)*/ 6135*22dc650dSSadaf Ebrahimi abc=xyz\\\npqr 6136*22dc650dSSadaf Ebrahimi 0: abc=xyz\ 6137*22dc650dSSadaf Ebrahimi 6138*22dc650dSSadaf Ebrahimi/(?=(\w+))\1:/ 6139*22dc650dSSadaf Ebrahimi abcd: 6140*22dc650dSSadaf Ebrahimi 0: abcd: 6141*22dc650dSSadaf Ebrahimi 1: abcd 6142*22dc650dSSadaf Ebrahimi 6143*22dc650dSSadaf Ebrahimi/^(?=(\w+))\1:/ 6144*22dc650dSSadaf Ebrahimi abcd: 6145*22dc650dSSadaf Ebrahimi 0: abcd: 6146*22dc650dSSadaf Ebrahimi 1: abcd 6147*22dc650dSSadaf Ebrahimi 6148*22dc650dSSadaf Ebrahimi/^\Eabc/ 6149*22dc650dSSadaf Ebrahimi abc 6150*22dc650dSSadaf Ebrahimi 0: abc 6151*22dc650dSSadaf Ebrahimi 6152*22dc650dSSadaf Ebrahimi/^[\Eabc]/ 6153*22dc650dSSadaf Ebrahimi a 6154*22dc650dSSadaf Ebrahimi 0: a 6155*22dc650dSSadaf Ebrahimi\= Expect no match 6156*22dc650dSSadaf Ebrahimi E 6157*22dc650dSSadaf EbrahimiNo match 6158*22dc650dSSadaf Ebrahimi 6159*22dc650dSSadaf Ebrahimi/^[a-\Ec]/ 6160*22dc650dSSadaf Ebrahimi b 6161*22dc650dSSadaf Ebrahimi 0: b 6162*22dc650dSSadaf Ebrahimi\= Expect no match 6163*22dc650dSSadaf Ebrahimi - 6164*22dc650dSSadaf EbrahimiNo match 6165*22dc650dSSadaf Ebrahimi E 6166*22dc650dSSadaf EbrahimiNo match 6167*22dc650dSSadaf Ebrahimi 6168*22dc650dSSadaf Ebrahimi/^[a\E\E-\Ec]/ 6169*22dc650dSSadaf Ebrahimi b 6170*22dc650dSSadaf Ebrahimi 0: b 6171*22dc650dSSadaf Ebrahimi\= Expect no match 6172*22dc650dSSadaf Ebrahimi - 6173*22dc650dSSadaf EbrahimiNo match 6174*22dc650dSSadaf Ebrahimi E 6175*22dc650dSSadaf EbrahimiNo match 6176*22dc650dSSadaf Ebrahimi 6177*22dc650dSSadaf Ebrahimi/^[\E\Qa\E-\Qz\E]+/ 6178*22dc650dSSadaf Ebrahimi b 6179*22dc650dSSadaf Ebrahimi 0: b 6180*22dc650dSSadaf Ebrahimi\= Expect no match 6181*22dc650dSSadaf Ebrahimi - 6182*22dc650dSSadaf EbrahimiNo match 6183*22dc650dSSadaf Ebrahimi 6184*22dc650dSSadaf Ebrahimi/^[a\Q]bc\E]/ 6185*22dc650dSSadaf Ebrahimi a 6186*22dc650dSSadaf Ebrahimi 0: a 6187*22dc650dSSadaf Ebrahimi ] 6188*22dc650dSSadaf Ebrahimi 0: ] 6189*22dc650dSSadaf Ebrahimi c 6190*22dc650dSSadaf Ebrahimi 0: c 6191*22dc650dSSadaf Ebrahimi 6192*22dc650dSSadaf Ebrahimi/^[a-\Q\E]/ 6193*22dc650dSSadaf Ebrahimi a 6194*22dc650dSSadaf Ebrahimi 0: a 6195*22dc650dSSadaf Ebrahimi - 6196*22dc650dSSadaf Ebrahimi 0: - 6197*22dc650dSSadaf Ebrahimi 6198*22dc650dSSadaf Ebrahimi/^(a()*)*/ 6199*22dc650dSSadaf Ebrahimi aaaa 6200*22dc650dSSadaf Ebrahimi 0: aaaa 6201*22dc650dSSadaf Ebrahimi 1: a 6202*22dc650dSSadaf Ebrahimi 2: 6203*22dc650dSSadaf Ebrahimi 6204*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))*)*/ 6205*22dc650dSSadaf Ebrahimi aaaa 6206*22dc650dSSadaf Ebrahimi 0: aaaa 6207*22dc650dSSadaf Ebrahimi 6208*22dc650dSSadaf Ebrahimi/^(a()+)+/ 6209*22dc650dSSadaf Ebrahimi aaaa 6210*22dc650dSSadaf Ebrahimi 0: aaaa 6211*22dc650dSSadaf Ebrahimi 1: a 6212*22dc650dSSadaf Ebrahimi 2: 6213*22dc650dSSadaf Ebrahimi 6214*22dc650dSSadaf Ebrahimi/^(?:a(?:(?:))+)+/ 6215*22dc650dSSadaf Ebrahimi aaaa 6216*22dc650dSSadaf Ebrahimi 0: aaaa 6217*22dc650dSSadaf Ebrahimi 6218*22dc650dSSadaf Ebrahimi/(a){0,3}(?(1)b|(c|))*D/ 6219*22dc650dSSadaf Ebrahimi abbD 6220*22dc650dSSadaf Ebrahimi 0: abbD 6221*22dc650dSSadaf Ebrahimi 1: a 6222*22dc650dSSadaf Ebrahimi ccccD 6223*22dc650dSSadaf Ebrahimi 0: ccccD 6224*22dc650dSSadaf Ebrahimi 1: <unset> 6225*22dc650dSSadaf Ebrahimi 2: 6226*22dc650dSSadaf Ebrahimi D 6227*22dc650dSSadaf Ebrahimi 0: D 6228*22dc650dSSadaf Ebrahimi 1: <unset> 6229*22dc650dSSadaf Ebrahimi 2: 6230*22dc650dSSadaf Ebrahimi 6231*22dc650dSSadaf Ebrahimi/(a|)*\d/ 6232*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6233*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6234*22dc650dSSadaf Ebrahimi 1: 6235*22dc650dSSadaf Ebrahimi\= Expect no match 6236*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6237*22dc650dSSadaf EbrahimiNo match 6238*22dc650dSSadaf Ebrahimi 6239*22dc650dSSadaf Ebrahimi/(?>a|)*\d/ 6240*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6241*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6242*22dc650dSSadaf Ebrahimi\= Expect no match 6243*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6244*22dc650dSSadaf EbrahimiNo match 6245*22dc650dSSadaf Ebrahimi 6246*22dc650dSSadaf Ebrahimi/(?:a|)*\d/ 6247*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6248*22dc650dSSadaf Ebrahimi 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6249*22dc650dSSadaf Ebrahimi\= Expect no match 6250*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6251*22dc650dSSadaf EbrahimiNo match 6252*22dc650dSSadaf Ebrahimi 6253*22dc650dSSadaf Ebrahimi/\Z/g 6254*22dc650dSSadaf Ebrahimi abc\n 6255*22dc650dSSadaf Ebrahimi 0: 6256*22dc650dSSadaf Ebrahimi 0: 6257*22dc650dSSadaf Ebrahimi 6258*22dc650dSSadaf Ebrahimi/^(?s)(?>.*)(?<!\n)/ 6259*22dc650dSSadaf Ebrahimi abc 6260*22dc650dSSadaf Ebrahimi 0: abc 6261*22dc650dSSadaf Ebrahimi\= Expect no match 6262*22dc650dSSadaf Ebrahimi abc\n 6263*22dc650dSSadaf EbrahimiNo match 6264*22dc650dSSadaf Ebrahimi 6265*22dc650dSSadaf Ebrahimi/^(?![^\n]*\n\z)/ 6266*22dc650dSSadaf Ebrahimi abc 6267*22dc650dSSadaf Ebrahimi 0: 6268*22dc650dSSadaf Ebrahimi\= Expect no match 6269*22dc650dSSadaf Ebrahimi abc\n 6270*22dc650dSSadaf EbrahimiNo match 6271*22dc650dSSadaf Ebrahimi 6272*22dc650dSSadaf Ebrahimi/\z(?<!\n)/ 6273*22dc650dSSadaf Ebrahimi abc 6274*22dc650dSSadaf Ebrahimi 0: 6275*22dc650dSSadaf Ebrahimi\= Expect no match 6276*22dc650dSSadaf Ebrahimi abc\n 6277*22dc650dSSadaf EbrahimiNo match 6278*22dc650dSSadaf Ebrahimi 6279*22dc650dSSadaf Ebrahimi/(.*(.)?)*/ 6280*22dc650dSSadaf Ebrahimi abcd 6281*22dc650dSSadaf Ebrahimi 0: abcd 6282*22dc650dSSadaf Ebrahimi 1: 6283*22dc650dSSadaf Ebrahimi 6284*22dc650dSSadaf Ebrahimi/( (A | (?(1)0|) )* )/x 6285*22dc650dSSadaf Ebrahimi abcd 6286*22dc650dSSadaf Ebrahimi 0: 6287*22dc650dSSadaf Ebrahimi 1: 6288*22dc650dSSadaf Ebrahimi 2: 6289*22dc650dSSadaf Ebrahimi 6290*22dc650dSSadaf Ebrahimi/( ( (?(1)0|) )* )/x 6291*22dc650dSSadaf Ebrahimi abcd 6292*22dc650dSSadaf Ebrahimi 0: 6293*22dc650dSSadaf Ebrahimi 1: 6294*22dc650dSSadaf Ebrahimi 2: 6295*22dc650dSSadaf Ebrahimi 6296*22dc650dSSadaf Ebrahimi/( (?(1)0|)* )/x 6297*22dc650dSSadaf Ebrahimi abcd 6298*22dc650dSSadaf Ebrahimi 0: 6299*22dc650dSSadaf Ebrahimi 1: 6300*22dc650dSSadaf Ebrahimi 6301*22dc650dSSadaf Ebrahimi/[[:abcd:xyz]]/ 6302*22dc650dSSadaf Ebrahimi a] 6303*22dc650dSSadaf Ebrahimi 0: a] 6304*22dc650dSSadaf Ebrahimi :] 6305*22dc650dSSadaf Ebrahimi 0: :] 6306*22dc650dSSadaf Ebrahimi 6307*22dc650dSSadaf Ebrahimi/[abc[:x\]pqr]/ 6308*22dc650dSSadaf Ebrahimi a 6309*22dc650dSSadaf Ebrahimi 0: a 6310*22dc650dSSadaf Ebrahimi [ 6311*22dc650dSSadaf Ebrahimi 0: [ 6312*22dc650dSSadaf Ebrahimi : 6313*22dc650dSSadaf Ebrahimi 0: : 6314*22dc650dSSadaf Ebrahimi ] 6315*22dc650dSSadaf Ebrahimi 0: ] 6316*22dc650dSSadaf Ebrahimi p 6317*22dc650dSSadaf Ebrahimi 0: p 6318*22dc650dSSadaf Ebrahimi 6319*22dc650dSSadaf Ebrahimi/.*[op][xyz]/ 6320*22dc650dSSadaf Ebrahimi\= Expect no match 6321*22dc650dSSadaf Ebrahimi fooabcfoo 6322*22dc650dSSadaf EbrahimiNo match 6323*22dc650dSSadaf Ebrahimi 6324*22dc650dSSadaf Ebrahimi/(?(?=.*b)b|^)/ 6325*22dc650dSSadaf Ebrahimi adc 6326*22dc650dSSadaf Ebrahimi 0: 6327*22dc650dSSadaf Ebrahimi abc 6328*22dc650dSSadaf Ebrahimi 0: b 6329*22dc650dSSadaf Ebrahimi 6330*22dc650dSSadaf Ebrahimi/(?(?=^.*b)b|^)/ 6331*22dc650dSSadaf Ebrahimi adc 6332*22dc650dSSadaf Ebrahimi 0: 6333*22dc650dSSadaf Ebrahimi\= Expect no match 6334*22dc650dSSadaf Ebrahimi abc 6335*22dc650dSSadaf EbrahimiNo match 6336*22dc650dSSadaf Ebrahimi 6337*22dc650dSSadaf Ebrahimi/(?(?=.*b)b|^)*/ 6338*22dc650dSSadaf Ebrahimi adc 6339*22dc650dSSadaf Ebrahimi 0: 6340*22dc650dSSadaf Ebrahimi abc 6341*22dc650dSSadaf Ebrahimi 0: 6342*22dc650dSSadaf Ebrahimi 6343*22dc650dSSadaf Ebrahimi/(?(?=.*b)b|^)+/ 6344*22dc650dSSadaf Ebrahimi adc 6345*22dc650dSSadaf Ebrahimi 0: 6346*22dc650dSSadaf Ebrahimi abc 6347*22dc650dSSadaf Ebrahimi 0: b 6348*22dc650dSSadaf Ebrahimi 6349*22dc650dSSadaf Ebrahimi/(?(?=b).*b|^d)/ 6350*22dc650dSSadaf Ebrahimi abc 6351*22dc650dSSadaf Ebrahimi 0: b 6352*22dc650dSSadaf Ebrahimi 6353*22dc650dSSadaf Ebrahimi/(?(?=.*b).*b|^d)/ 6354*22dc650dSSadaf Ebrahimi abc 6355*22dc650dSSadaf Ebrahimi 0: ab 6356*22dc650dSSadaf Ebrahimi 6357*22dc650dSSadaf Ebrahimi/^%((?(?=[a])[^%])|b)*%$/ 6358*22dc650dSSadaf Ebrahimi %ab% 6359*22dc650dSSadaf Ebrahimi 0: %ab% 6360*22dc650dSSadaf Ebrahimi 1: 6361*22dc650dSSadaf Ebrahimi 6362*22dc650dSSadaf Ebrahimi/(?i)a(?-i)b|c/ 6363*22dc650dSSadaf Ebrahimi XabX 6364*22dc650dSSadaf Ebrahimi 0: ab 6365*22dc650dSSadaf Ebrahimi XAbX 6366*22dc650dSSadaf Ebrahimi 0: Ab 6367*22dc650dSSadaf Ebrahimi CcC 6368*22dc650dSSadaf Ebrahimi 0: c 6369*22dc650dSSadaf Ebrahimi\= Expect no match 6370*22dc650dSSadaf Ebrahimi XABX 6371*22dc650dSSadaf EbrahimiNo match 6372*22dc650dSSadaf Ebrahimi 6373*22dc650dSSadaf Ebrahimi/[\x00-\xff\s]+/ 6374*22dc650dSSadaf Ebrahimi \x0a\x0b\x0c\x0d 6375*22dc650dSSadaf Ebrahimi 0: \x0a\x0b\x0c\x0d 6376*22dc650dSSadaf Ebrahimi 6377*22dc650dSSadaf Ebrahimi/(abc)\1/i 6378*22dc650dSSadaf Ebrahimi\= Expect no match 6379*22dc650dSSadaf Ebrahimi abc 6380*22dc650dSSadaf EbrahimiNo match 6381*22dc650dSSadaf Ebrahimi 6382*22dc650dSSadaf Ebrahimi/(abc)\1/ 6383*22dc650dSSadaf Ebrahimi\= Expect no match 6384*22dc650dSSadaf Ebrahimi abc 6385*22dc650dSSadaf EbrahimiNo match 6386*22dc650dSSadaf Ebrahimi 6387*22dc650dSSadaf Ebrahimi/[^a]*/i 6388*22dc650dSSadaf Ebrahimi 12abc 6389*22dc650dSSadaf Ebrahimi 0: 12 6390*22dc650dSSadaf Ebrahimi 12ABC 6391*22dc650dSSadaf Ebrahimi 0: 12 6392*22dc650dSSadaf Ebrahimi 6393*22dc650dSSadaf Ebrahimi/[^a]*+/i 6394*22dc650dSSadaf Ebrahimi 12abc 6395*22dc650dSSadaf Ebrahimi 0: 12 6396*22dc650dSSadaf Ebrahimi 12ABC 6397*22dc650dSSadaf Ebrahimi 0: 12 6398*22dc650dSSadaf Ebrahimi 6399*22dc650dSSadaf Ebrahimi/[^a]*?X/i 6400*22dc650dSSadaf Ebrahimi\= Expect no match 6401*22dc650dSSadaf Ebrahimi 12abc 6402*22dc650dSSadaf EbrahimiNo match 6403*22dc650dSSadaf Ebrahimi 12ABC 6404*22dc650dSSadaf EbrahimiNo match 6405*22dc650dSSadaf Ebrahimi 6406*22dc650dSSadaf Ebrahimi/[^a]+?X/i 6407*22dc650dSSadaf Ebrahimi\= Expect no match 6408*22dc650dSSadaf Ebrahimi 12abc 6409*22dc650dSSadaf EbrahimiNo match 6410*22dc650dSSadaf Ebrahimi 12ABC 6411*22dc650dSSadaf EbrahimiNo match 6412*22dc650dSSadaf Ebrahimi 6413*22dc650dSSadaf Ebrahimi/[^a]?X/i 6414*22dc650dSSadaf Ebrahimi 12aXbcX 6415*22dc650dSSadaf Ebrahimi 0: X 6416*22dc650dSSadaf Ebrahimi 12AXBCX 6417*22dc650dSSadaf Ebrahimi 0: X 6418*22dc650dSSadaf Ebrahimi BCX 6419*22dc650dSSadaf Ebrahimi 0: CX 6420*22dc650dSSadaf Ebrahimi 6421*22dc650dSSadaf Ebrahimi/[^a]??X/i 6422*22dc650dSSadaf Ebrahimi 12aXbcX 6423*22dc650dSSadaf Ebrahimi 0: X 6424*22dc650dSSadaf Ebrahimi 12AXBCX 6425*22dc650dSSadaf Ebrahimi 0: X 6426*22dc650dSSadaf Ebrahimi BCX 6427*22dc650dSSadaf Ebrahimi 0: CX 6428*22dc650dSSadaf Ebrahimi 6429*22dc650dSSadaf Ebrahimi/[^a]?+X/i 6430*22dc650dSSadaf Ebrahimi 12aXbcX 6431*22dc650dSSadaf Ebrahimi 0: cX 6432*22dc650dSSadaf Ebrahimi 12AXBCX 6433*22dc650dSSadaf Ebrahimi 0: CX 6434*22dc650dSSadaf Ebrahimi BCX 6435*22dc650dSSadaf Ebrahimi 0: CX 6436*22dc650dSSadaf Ebrahimi 6437*22dc650dSSadaf Ebrahimi/[^a]{2,3}/i 6438*22dc650dSSadaf Ebrahimi abcdef 6439*22dc650dSSadaf Ebrahimi 0: bcd 6440*22dc650dSSadaf Ebrahimi ABCDEF 6441*22dc650dSSadaf Ebrahimi 0: BCD 6442*22dc650dSSadaf Ebrahimi 6443*22dc650dSSadaf Ebrahimi/[^a]{2,3}?/i 6444*22dc650dSSadaf Ebrahimi abcdef 6445*22dc650dSSadaf Ebrahimi 0: bc 6446*22dc650dSSadaf Ebrahimi ABCDEF 6447*22dc650dSSadaf Ebrahimi 0: BC 6448*22dc650dSSadaf Ebrahimi 6449*22dc650dSSadaf Ebrahimi/[^a]{2,3}+/i 6450*22dc650dSSadaf Ebrahimi abcdef 6451*22dc650dSSadaf Ebrahimi 0: bcd 6452*22dc650dSSadaf Ebrahimi ABCDEF 6453*22dc650dSSadaf Ebrahimi 0: BCD 6454*22dc650dSSadaf Ebrahimi 6455*22dc650dSSadaf Ebrahimi/((a|)+)+Z/ 6456*22dc650dSSadaf Ebrahimi Z 6457*22dc650dSSadaf Ebrahimi 0: Z 6458*22dc650dSSadaf Ebrahimi 1: 6459*22dc650dSSadaf Ebrahimi 2: 6460*22dc650dSSadaf Ebrahimi 6461*22dc650dSSadaf Ebrahimi/(a)b|(a)c/ 6462*22dc650dSSadaf Ebrahimi ac 6463*22dc650dSSadaf Ebrahimi 0: ac 6464*22dc650dSSadaf Ebrahimi 1: <unset> 6465*22dc650dSSadaf Ebrahimi 2: a 6466*22dc650dSSadaf Ebrahimi 6467*22dc650dSSadaf Ebrahimi/(?>(a))b|(a)c/ 6468*22dc650dSSadaf Ebrahimi ac 6469*22dc650dSSadaf Ebrahimi 0: ac 6470*22dc650dSSadaf Ebrahimi 1: <unset> 6471*22dc650dSSadaf Ebrahimi 2: a 6472*22dc650dSSadaf Ebrahimi 6473*22dc650dSSadaf Ebrahimi/(?=(a))ab|(a)c/ 6474*22dc650dSSadaf Ebrahimi ac 6475*22dc650dSSadaf Ebrahimi 0: ac 6476*22dc650dSSadaf Ebrahimi 1: <unset> 6477*22dc650dSSadaf Ebrahimi 2: a 6478*22dc650dSSadaf Ebrahimi 6479*22dc650dSSadaf Ebrahimi/((?>(a))b|(a)c)/ 6480*22dc650dSSadaf Ebrahimi ac 6481*22dc650dSSadaf Ebrahimi 0: ac 6482*22dc650dSSadaf Ebrahimi 1: ac 6483*22dc650dSSadaf Ebrahimi 2: <unset> 6484*22dc650dSSadaf Ebrahimi 3: a 6485*22dc650dSSadaf Ebrahimi 6486*22dc650dSSadaf Ebrahimi/((?>(a))b|(a)c)++/ 6487*22dc650dSSadaf Ebrahimi ac 6488*22dc650dSSadaf Ebrahimi 0: ac 6489*22dc650dSSadaf Ebrahimi 1: ac 6490*22dc650dSSadaf Ebrahimi 2: <unset> 6491*22dc650dSSadaf Ebrahimi 3: a 6492*22dc650dSSadaf Ebrahimi 6493*22dc650dSSadaf Ebrahimi/(?:(?>(a))b|(a)c)++/ 6494*22dc650dSSadaf Ebrahimi ac 6495*22dc650dSSadaf Ebrahimi 0: ac 6496*22dc650dSSadaf Ebrahimi 1: <unset> 6497*22dc650dSSadaf Ebrahimi 2: a 6498*22dc650dSSadaf Ebrahimi 6499*22dc650dSSadaf Ebrahimi/(?=(?>(a))b|(a)c)(..)/ 6500*22dc650dSSadaf Ebrahimi ac 6501*22dc650dSSadaf Ebrahimi 0: ac 6502*22dc650dSSadaf Ebrahimi 1: <unset> 6503*22dc650dSSadaf Ebrahimi 2: a 6504*22dc650dSSadaf Ebrahimi 3: ac 6505*22dc650dSSadaf Ebrahimi 6506*22dc650dSSadaf Ebrahimi/(?>(?>(a))b|(a)c)/ 6507*22dc650dSSadaf Ebrahimi ac 6508*22dc650dSSadaf Ebrahimi 0: ac 6509*22dc650dSSadaf Ebrahimi 1: <unset> 6510*22dc650dSSadaf Ebrahimi 2: a 6511*22dc650dSSadaf Ebrahimi 6512*22dc650dSSadaf Ebrahimi/(?:(?>([ab])))+a=/aftertext 6513*22dc650dSSadaf Ebrahimi =ba= 6514*22dc650dSSadaf Ebrahimi 0: ba= 6515*22dc650dSSadaf Ebrahimi 0+ 6516*22dc650dSSadaf Ebrahimi 1: b 6517*22dc650dSSadaf Ebrahimi 6518*22dc650dSSadaf Ebrahimi/(?>([ab]))+a=/aftertext 6519*22dc650dSSadaf Ebrahimi =ba= 6520*22dc650dSSadaf Ebrahimi 0: ba= 6521*22dc650dSSadaf Ebrahimi 0+ 6522*22dc650dSSadaf Ebrahimi 1: b 6523*22dc650dSSadaf Ebrahimi 6524*22dc650dSSadaf Ebrahimi/((?>(a+)b)+(aabab))/ 6525*22dc650dSSadaf Ebrahimi aaaabaaabaabab 6526*22dc650dSSadaf Ebrahimi 0: aaaabaaabaabab 6527*22dc650dSSadaf Ebrahimi 1: aaaabaaabaabab 6528*22dc650dSSadaf Ebrahimi 2: aaa 6529*22dc650dSSadaf Ebrahimi 3: aabab 6530*22dc650dSSadaf Ebrahimi 6531*22dc650dSSadaf Ebrahimi/(?>a+|ab)+?c/ 6532*22dc650dSSadaf Ebrahimi\= Expect no match 6533*22dc650dSSadaf Ebrahimi aabc 6534*22dc650dSSadaf EbrahimiNo match 6535*22dc650dSSadaf Ebrahimi 6536*22dc650dSSadaf Ebrahimi/(?>a+|ab)+c/ 6537*22dc650dSSadaf Ebrahimi\= Expect no match 6538*22dc650dSSadaf Ebrahimi aabc 6539*22dc650dSSadaf EbrahimiNo match 6540*22dc650dSSadaf Ebrahimi 6541*22dc650dSSadaf Ebrahimi/(?:a+|ab)+c/ 6542*22dc650dSSadaf Ebrahimi aabc 6543*22dc650dSSadaf Ebrahimi 0: aabc 6544*22dc650dSSadaf Ebrahimi 6545*22dc650dSSadaf Ebrahimi/(?(?=(a))a)/ 6546*22dc650dSSadaf Ebrahimi a 6547*22dc650dSSadaf Ebrahimi 0: a 6548*22dc650dSSadaf Ebrahimi 1: a 6549*22dc650dSSadaf Ebrahimi 6550*22dc650dSSadaf Ebrahimi/(?(?=(a))a)(b)/ 6551*22dc650dSSadaf Ebrahimi ab 6552*22dc650dSSadaf Ebrahimi 0: ab 6553*22dc650dSSadaf Ebrahimi 1: a 6554*22dc650dSSadaf Ebrahimi 2: b 6555*22dc650dSSadaf Ebrahimi 6556*22dc650dSSadaf Ebrahimi/^(?:a|ab)++c/ 6557*22dc650dSSadaf Ebrahimi\= Expect no match 6558*22dc650dSSadaf Ebrahimi aaaabc 6559*22dc650dSSadaf EbrahimiNo match 6560*22dc650dSSadaf Ebrahimi 6561*22dc650dSSadaf Ebrahimi/^(?>a|ab)++c/ 6562*22dc650dSSadaf Ebrahimi\= Expect no match 6563*22dc650dSSadaf Ebrahimi aaaabc 6564*22dc650dSSadaf EbrahimiNo match 6565*22dc650dSSadaf Ebrahimi 6566*22dc650dSSadaf Ebrahimi/^(?:a|ab)+c/ 6567*22dc650dSSadaf Ebrahimi aaaabc 6568*22dc650dSSadaf Ebrahimi 0: aaaabc 6569*22dc650dSSadaf Ebrahimi 6570*22dc650dSSadaf Ebrahimi/(?=abc){3}abc/aftertext 6571*22dc650dSSadaf Ebrahimi abcabcabc 6572*22dc650dSSadaf Ebrahimi 0: abc 6573*22dc650dSSadaf Ebrahimi 0+ abcabc 6574*22dc650dSSadaf Ebrahimi\= Expect no match 6575*22dc650dSSadaf Ebrahimi xyz 6576*22dc650dSSadaf EbrahimiNo match 6577*22dc650dSSadaf Ebrahimi 6578*22dc650dSSadaf Ebrahimi/(?=abc)+abc/aftertext 6579*22dc650dSSadaf Ebrahimi abcabcabc 6580*22dc650dSSadaf Ebrahimi 0: abc 6581*22dc650dSSadaf Ebrahimi 0+ abcabc 6582*22dc650dSSadaf Ebrahimi\= Expect no match 6583*22dc650dSSadaf Ebrahimi xyz 6584*22dc650dSSadaf EbrahimiNo match 6585*22dc650dSSadaf Ebrahimi 6586*22dc650dSSadaf Ebrahimi/(?=abc)++abc/aftertext 6587*22dc650dSSadaf Ebrahimi abcabcabc 6588*22dc650dSSadaf Ebrahimi 0: abc 6589*22dc650dSSadaf Ebrahimi 0+ abcabc 6590*22dc650dSSadaf Ebrahimi\= Expect no match 6591*22dc650dSSadaf Ebrahimi xyz 6592*22dc650dSSadaf EbrahimiNo match 6593*22dc650dSSadaf Ebrahimi 6594*22dc650dSSadaf Ebrahimi/(?=abc){0}xyz/ 6595*22dc650dSSadaf Ebrahimi xyz 6596*22dc650dSSadaf Ebrahimi 0: xyz 6597*22dc650dSSadaf Ebrahimi 6598*22dc650dSSadaf Ebrahimi/(?=abc){1}xyz/ 6599*22dc650dSSadaf Ebrahimi\= Expect no match 6600*22dc650dSSadaf Ebrahimi xyz 6601*22dc650dSSadaf EbrahimiNo match 6602*22dc650dSSadaf Ebrahimi 6603*22dc650dSSadaf Ebrahimi/(?=(a))?./ 6604*22dc650dSSadaf Ebrahimi ab 6605*22dc650dSSadaf Ebrahimi 0: a 6606*22dc650dSSadaf Ebrahimi 1: a 6607*22dc650dSSadaf Ebrahimi bc 6608*22dc650dSSadaf Ebrahimi 0: b 6609*22dc650dSSadaf Ebrahimi 6610*22dc650dSSadaf Ebrahimi/(?=(a))??./ 6611*22dc650dSSadaf Ebrahimi ab 6612*22dc650dSSadaf Ebrahimi 0: a 6613*22dc650dSSadaf Ebrahimi bc 6614*22dc650dSSadaf Ebrahimi 0: b 6615*22dc650dSSadaf Ebrahimi 6616*22dc650dSSadaf Ebrahimi/^(?=(?1))?[az]([abc])d/ 6617*22dc650dSSadaf Ebrahimi abd 6618*22dc650dSSadaf Ebrahimi 0: abd 6619*22dc650dSSadaf Ebrahimi 1: b 6620*22dc650dSSadaf Ebrahimi zcdxx 6621*22dc650dSSadaf Ebrahimi 0: zcd 6622*22dc650dSSadaf Ebrahimi 1: c 6623*22dc650dSSadaf Ebrahimi 6624*22dc650dSSadaf Ebrahimi/^(?!a){0}\w+/ 6625*22dc650dSSadaf Ebrahimi aaaaa 6626*22dc650dSSadaf Ebrahimi 0: aaaaa 6627*22dc650dSSadaf Ebrahimi 6628*22dc650dSSadaf Ebrahimi/(?<=(abc))?xyz/ 6629*22dc650dSSadaf Ebrahimi abcxyz 6630*22dc650dSSadaf Ebrahimi 0: xyz 6631*22dc650dSSadaf Ebrahimi 1: abc 6632*22dc650dSSadaf Ebrahimi pqrxyz 6633*22dc650dSSadaf Ebrahimi 0: xyz 6634*22dc650dSSadaf Ebrahimi 6635*22dc650dSSadaf Ebrahimi/^[\g<a>]+/ 6636*22dc650dSSadaf Ebrahimi ggg<<<aaa>>> 6637*22dc650dSSadaf Ebrahimi 0: ggg<<<aaa>>> 6638*22dc650dSSadaf Ebrahimi\= Expect no match 6639*22dc650dSSadaf Ebrahimi \\ga 6640*22dc650dSSadaf EbrahimiNo match 6641*22dc650dSSadaf Ebrahimi 6642*22dc650dSSadaf Ebrahimi/^[\ga]+/ 6643*22dc650dSSadaf Ebrahimi gggagagaxyz 6644*22dc650dSSadaf Ebrahimi 0: gggagaga 6645*22dc650dSSadaf Ebrahimi 6646*22dc650dSSadaf Ebrahimi/^[:a[:digit:]]+/ 6647*22dc650dSSadaf Ebrahimi aaaa444:::Z 6648*22dc650dSSadaf Ebrahimi 0: aaaa444::: 6649*22dc650dSSadaf Ebrahimi 6650*22dc650dSSadaf Ebrahimi/^[:a[:digit:]:b]+/ 6651*22dc650dSSadaf Ebrahimi aaaa444:::bbbZ 6652*22dc650dSSadaf Ebrahimi 0: aaaa444:::bbb 6653*22dc650dSSadaf Ebrahimi 6654*22dc650dSSadaf Ebrahimi/[:a]xxx[b:]/ 6655*22dc650dSSadaf Ebrahimi :xxx: 6656*22dc650dSSadaf Ebrahimi 0: :xxx: 6657*22dc650dSSadaf Ebrahimi 6658*22dc650dSSadaf Ebrahimi/(?<=a{2})b/i 6659*22dc650dSSadaf Ebrahimi xaabc 6660*22dc650dSSadaf Ebrahimi 0: b 6661*22dc650dSSadaf Ebrahimi\= Expect no match 6662*22dc650dSSadaf Ebrahimi xabc 6663*22dc650dSSadaf EbrahimiNo match 6664*22dc650dSSadaf Ebrahimi 6665*22dc650dSSadaf Ebrahimi/(?<!a{2})b/i 6666*22dc650dSSadaf Ebrahimi xabc 6667*22dc650dSSadaf Ebrahimi 0: b 6668*22dc650dSSadaf Ebrahimi\= Expect no match 6669*22dc650dSSadaf Ebrahimi xaabc 6670*22dc650dSSadaf EbrahimiNo match 6671*22dc650dSSadaf Ebrahimi 6672*22dc650dSSadaf Ebrahimi/(?<=a\h)c/ 6673*22dc650dSSadaf Ebrahimi xa c 6674*22dc650dSSadaf Ebrahimi 0: c 6675*22dc650dSSadaf Ebrahimi 6676*22dc650dSSadaf Ebrahimi/(?<=[^a]{2})b/ 6677*22dc650dSSadaf Ebrahimi axxbc 6678*22dc650dSSadaf Ebrahimi 0: b 6679*22dc650dSSadaf Ebrahimi aAAbc 6680*22dc650dSSadaf Ebrahimi 0: b 6681*22dc650dSSadaf Ebrahimi\= Expect no match 6682*22dc650dSSadaf Ebrahimi xaabc 6683*22dc650dSSadaf EbrahimiNo match 6684*22dc650dSSadaf Ebrahimi 6685*22dc650dSSadaf Ebrahimi/(?<=[^a]{2})b/i 6686*22dc650dSSadaf Ebrahimi axxbc 6687*22dc650dSSadaf Ebrahimi 0: b 6688*22dc650dSSadaf Ebrahimi\= Expect no match 6689*22dc650dSSadaf Ebrahimi aAAbc 6690*22dc650dSSadaf EbrahimiNo match 6691*22dc650dSSadaf Ebrahimi xaabc 6692*22dc650dSSadaf EbrahimiNo match 6693*22dc650dSSadaf Ebrahimi 6694*22dc650dSSadaf Ebrahimi/(?<=a\H)c/ 6695*22dc650dSSadaf Ebrahimi abc 6696*22dc650dSSadaf Ebrahimi 0: c 6697*22dc650dSSadaf Ebrahimi 6698*22dc650dSSadaf Ebrahimi/(?<=a\V)c/ 6699*22dc650dSSadaf Ebrahimi abc 6700*22dc650dSSadaf Ebrahimi 0: c 6701*22dc650dSSadaf Ebrahimi 6702*22dc650dSSadaf Ebrahimi/(?<=a\v)c/ 6703*22dc650dSSadaf Ebrahimi a\nc 6704*22dc650dSSadaf Ebrahimi 0: c 6705*22dc650dSSadaf Ebrahimi 6706*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)++Y/ 6707*22dc650dSSadaf Ebrahimi XcccddYX 6708*22dc650dSSadaf Ebrahimi 0: cccddY 6709*22dc650dSSadaf Ebrahimi 6710*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)*+Y/ 6711*22dc650dSSadaf Ebrahimi XcccddYX 6712*22dc650dSSadaf Ebrahimi 0: cccddY 6713*22dc650dSSadaf Ebrahimi 6714*22dc650dSSadaf Ebrahimi/^(a{2,3}){2,}+a/ 6715*22dc650dSSadaf Ebrahimi aaaaaaa 6716*22dc650dSSadaf Ebrahimi 0: aaaaaaa 6717*22dc650dSSadaf Ebrahimi 1: aaa 6718*22dc650dSSadaf Ebrahimi\= Expect no match 6719*22dc650dSSadaf Ebrahimi aaaaaa 6720*22dc650dSSadaf EbrahimiNo match 6721*22dc650dSSadaf Ebrahimi aaaaaaaaa 6722*22dc650dSSadaf EbrahimiNo match 6723*22dc650dSSadaf Ebrahimi 6724*22dc650dSSadaf Ebrahimi/^(a{2,3})++a/ 6725*22dc650dSSadaf Ebrahimi\= Expect no match 6726*22dc650dSSadaf Ebrahimi aaaaaa 6727*22dc650dSSadaf EbrahimiNo match 6728*22dc650dSSadaf Ebrahimi 6729*22dc650dSSadaf Ebrahimi/^(a{2,3})*+a/ 6730*22dc650dSSadaf Ebrahimi\= Expect no match 6731*22dc650dSSadaf Ebrahimi aaaaaa 6732*22dc650dSSadaf EbrahimiNo match 6733*22dc650dSSadaf Ebrahimi 6734*22dc650dSSadaf Ebrahimi/\H\h\V\v/ 6735*22dc650dSSadaf Ebrahimi X X\x0a 6736*22dc650dSSadaf Ebrahimi 0: X X\x0a 6737*22dc650dSSadaf Ebrahimi X\x09X\x0b 6738*22dc650dSSadaf Ebrahimi 0: X\x09X\x0b 6739*22dc650dSSadaf Ebrahimi\= Expect no match 6740*22dc650dSSadaf Ebrahimi \xa0 X\x0a 6741*22dc650dSSadaf EbrahimiNo match 6742*22dc650dSSadaf Ebrahimi 6743*22dc650dSSadaf Ebrahimi/\H*\h+\V?\v{3,4}/ 6744*22dc650dSSadaf Ebrahimi \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a 6745*22dc650dSSadaf Ebrahimi 0: \x09 \xa0X\x0a\x0b\x0c\x0d 6746*22dc650dSSadaf Ebrahimi \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a 6747*22dc650dSSadaf Ebrahimi 0: \x09 \xa0\x0a\x0b\x0c\x0d 6748*22dc650dSSadaf Ebrahimi \x09\x20\xa0\x0a\x0b\x0c 6749*22dc650dSSadaf Ebrahimi 0: \x09 \xa0\x0a\x0b\x0c 6750*22dc650dSSadaf Ebrahimi\= Expect no match 6751*22dc650dSSadaf Ebrahimi \x09\x20\xa0\x0a\x0b 6752*22dc650dSSadaf EbrahimiNo match 6753*22dc650dSSadaf Ebrahimi 6754*22dc650dSSadaf Ebrahimi/\H{3,4}/ 6755*22dc650dSSadaf Ebrahimi XY ABCDE 6756*22dc650dSSadaf Ebrahimi 0: ABCD 6757*22dc650dSSadaf Ebrahimi XY PQR ST 6758*22dc650dSSadaf Ebrahimi 0: PQR 6759*22dc650dSSadaf Ebrahimi 6760*22dc650dSSadaf Ebrahimi/.\h{3,4}./ 6761*22dc650dSSadaf Ebrahimi XY AB PQRS 6762*22dc650dSSadaf Ebrahimi 0: B P 6763*22dc650dSSadaf Ebrahimi 6764*22dc650dSSadaf Ebrahimi/\h*X\h?\H+Y\H?Z/ 6765*22dc650dSSadaf Ebrahimi >XNNNYZ 6766*22dc650dSSadaf Ebrahimi 0: XNNNYZ 6767*22dc650dSSadaf Ebrahimi > X NYQZ 6768*22dc650dSSadaf Ebrahimi 0: X NYQZ 6769*22dc650dSSadaf Ebrahimi\= Expect no match 6770*22dc650dSSadaf Ebrahimi >XYZ 6771*22dc650dSSadaf EbrahimiNo match 6772*22dc650dSSadaf Ebrahimi > X NY Z 6773*22dc650dSSadaf EbrahimiNo match 6774*22dc650dSSadaf Ebrahimi 6775*22dc650dSSadaf Ebrahimi/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ 6776*22dc650dSSadaf Ebrahimi >XY\x0aZ\x0aA\x0bNN\x0c 6777*22dc650dSSadaf Ebrahimi 0: XY\x0aZ\x0aA\x0bNN\x0c 6778*22dc650dSSadaf Ebrahimi >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c 6779*22dc650dSSadaf Ebrahimi 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c 6780*22dc650dSSadaf Ebrahimi 6781*22dc650dSSadaf Ebrahimi/(foo)\Kbar/ 6782*22dc650dSSadaf Ebrahimi foobar 6783*22dc650dSSadaf Ebrahimi 0: bar 6784*22dc650dSSadaf Ebrahimi 1: foo 6785*22dc650dSSadaf Ebrahimi 6786*22dc650dSSadaf Ebrahimi/(foo)(\Kbar|baz)/ 6787*22dc650dSSadaf Ebrahimi foobar 6788*22dc650dSSadaf Ebrahimi 0: bar 6789*22dc650dSSadaf Ebrahimi 1: foo 6790*22dc650dSSadaf Ebrahimi 2: bar 6791*22dc650dSSadaf Ebrahimi foobaz 6792*22dc650dSSadaf Ebrahimi 0: foobaz 6793*22dc650dSSadaf Ebrahimi 1: foo 6794*22dc650dSSadaf Ebrahimi 2: baz 6795*22dc650dSSadaf Ebrahimi 6796*22dc650dSSadaf Ebrahimi/(foo\Kbar)baz/ 6797*22dc650dSSadaf Ebrahimi foobarbaz 6798*22dc650dSSadaf Ebrahimi 0: barbaz 6799*22dc650dSSadaf Ebrahimi 1: foobar 6800*22dc650dSSadaf Ebrahimi 6801*22dc650dSSadaf Ebrahimi/abc\K|def\K/g,aftertext 6802*22dc650dSSadaf Ebrahimi Xabcdefghi 6803*22dc650dSSadaf Ebrahimi 0: 6804*22dc650dSSadaf Ebrahimi 0+ defghi 6805*22dc650dSSadaf Ebrahimi 0: 6806*22dc650dSSadaf Ebrahimi 0+ ghi 6807*22dc650dSSadaf Ebrahimi 6808*22dc650dSSadaf Ebrahimi/ab\Kc|de\Kf/g,aftertext 6809*22dc650dSSadaf Ebrahimi Xabcdefghi 6810*22dc650dSSadaf Ebrahimi 0: c 6811*22dc650dSSadaf Ebrahimi 0+ defghi 6812*22dc650dSSadaf Ebrahimi 0: f 6813*22dc650dSSadaf Ebrahimi 0+ ghi 6814*22dc650dSSadaf Ebrahimi 6815*22dc650dSSadaf Ebrahimi/(?=C)/g,aftertext 6816*22dc650dSSadaf Ebrahimi ABCDECBA 6817*22dc650dSSadaf Ebrahimi 0: 6818*22dc650dSSadaf Ebrahimi 0+ CDECBA 6819*22dc650dSSadaf Ebrahimi 0: 6820*22dc650dSSadaf Ebrahimi 0+ CBA 6821*22dc650dSSadaf Ebrahimi 6822*22dc650dSSadaf Ebrahimi/^abc\K/aftertext 6823*22dc650dSSadaf Ebrahimi abcdef 6824*22dc650dSSadaf Ebrahimi 0: 6825*22dc650dSSadaf Ebrahimi 0+ def 6826*22dc650dSSadaf Ebrahimi\= Expect no match 6827*22dc650dSSadaf Ebrahimi defabcxyz 6828*22dc650dSSadaf EbrahimiNo match 6829*22dc650dSSadaf Ebrahimi 6830*22dc650dSSadaf Ebrahimi/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-2}Z/ 6831*22dc650dSSadaf Ebrahimi ababababbbabZXXXX 6832*22dc650dSSadaf Ebrahimi 0: ababababbbabZ 6833*22dc650dSSadaf Ebrahimi 1: ab 6834*22dc650dSSadaf Ebrahimi 2: b 6835*22dc650dSSadaf Ebrahimi 6836*22dc650dSSadaf Ebrahimi/(?<A>tom|bon)-\g{A}/ 6837*22dc650dSSadaf Ebrahimi tom-tom 6838*22dc650dSSadaf Ebrahimi 0: tom-tom 6839*22dc650dSSadaf Ebrahimi 1: tom 6840*22dc650dSSadaf Ebrahimi bon-bon 6841*22dc650dSSadaf Ebrahimi 0: bon-bon 6842*22dc650dSSadaf Ebrahimi 1: bon 6843*22dc650dSSadaf Ebrahimi 6844*22dc650dSSadaf Ebrahimi/(^(a|b\g{-1}))/ 6845*22dc650dSSadaf Ebrahimi\= Expect no match 6846*22dc650dSSadaf Ebrahimi bacxxx 6847*22dc650dSSadaf EbrahimiNo match 6848*22dc650dSSadaf Ebrahimi 6849*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))\1/ 6850*22dc650dSSadaf Ebrahimi abcabc 6851*22dc650dSSadaf Ebrahimi 0: abcabc 6852*22dc650dSSadaf Ebrahimi 1: abc 6853*22dc650dSSadaf Ebrahimi xyzxyz 6854*22dc650dSSadaf Ebrahimi 0: xyzxyz 6855*22dc650dSSadaf Ebrahimi 1: xyz 6856*22dc650dSSadaf Ebrahimi\= Expect no match 6857*22dc650dSSadaf Ebrahimi abcxyz 6858*22dc650dSSadaf EbrahimiNo match 6859*22dc650dSSadaf Ebrahimi xyzabc 6860*22dc650dSSadaf EbrahimiNo match 6861*22dc650dSSadaf Ebrahimi 6862*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))(?1)/ 6863*22dc650dSSadaf Ebrahimi abcabc 6864*22dc650dSSadaf Ebrahimi 0: abcabc 6865*22dc650dSSadaf Ebrahimi 1: abc 6866*22dc650dSSadaf Ebrahimi xyzabc 6867*22dc650dSSadaf Ebrahimi 0: xyzabc 6868*22dc650dSSadaf Ebrahimi 1: xyz 6869*22dc650dSSadaf Ebrahimi\= Expect no match 6870*22dc650dSSadaf Ebrahimi xyzxyz 6871*22dc650dSSadaf EbrahimiNo match 6872*22dc650dSSadaf Ebrahimi 6873*22dc650dSSadaf Ebrahimi/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ 6874*22dc650dSSadaf Ebrahimi XYabcdY 6875*22dc650dSSadaf Ebrahimi 0: XYabcdY 6876*22dc650dSSadaf Ebrahimi 1: a 6877*22dc650dSSadaf Ebrahimi 2: b 6878*22dc650dSSadaf Ebrahimi 3: c 6879*22dc650dSSadaf Ebrahimi 4: d 6880*22dc650dSSadaf Ebrahimi 5: Y 6881*22dc650dSSadaf Ebrahimi 6882*22dc650dSSadaf Ebrahimi/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ 6883*22dc650dSSadaf Ebrahimi XYabcdY 6884*22dc650dSSadaf Ebrahimi 0: XYabcdY 6885*22dc650dSSadaf Ebrahimi 1: a 6886*22dc650dSSadaf Ebrahimi 2: b 6887*22dc650dSSadaf Ebrahimi 3: <unset> 6888*22dc650dSSadaf Ebrahimi 4: <unset> 6889*22dc650dSSadaf Ebrahimi 5: c 6890*22dc650dSSadaf Ebrahimi 6: d 6891*22dc650dSSadaf Ebrahimi 7: Y 6892*22dc650dSSadaf Ebrahimi 6893*22dc650dSSadaf Ebrahimi/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ 6894*22dc650dSSadaf Ebrahimi XYabcdY 6895*22dc650dSSadaf Ebrahimi 0: XYabcdY 6896*22dc650dSSadaf Ebrahimi 1: a 6897*22dc650dSSadaf Ebrahimi 2: b 6898*22dc650dSSadaf Ebrahimi 3: <unset> 6899*22dc650dSSadaf Ebrahimi 4: <unset> 6900*22dc650dSSadaf Ebrahimi 5: c 6901*22dc650dSSadaf Ebrahimi 6: d 6902*22dc650dSSadaf Ebrahimi 7: Y 6903*22dc650dSSadaf Ebrahimi 6904*22dc650dSSadaf Ebrahimi/(?'abc'\w+):\k<abc>{2}/ 6905*22dc650dSSadaf Ebrahimi a:aaxyz 6906*22dc650dSSadaf Ebrahimi 0: a:aa 6907*22dc650dSSadaf Ebrahimi 1: a 6908*22dc650dSSadaf Ebrahimi ab:ababxyz 6909*22dc650dSSadaf Ebrahimi 0: ab:abab 6910*22dc650dSSadaf Ebrahimi 1: ab 6911*22dc650dSSadaf Ebrahimi\= Expect no match 6912*22dc650dSSadaf Ebrahimi a:axyz 6913*22dc650dSSadaf EbrahimiNo match 6914*22dc650dSSadaf Ebrahimi ab:abxyz 6915*22dc650dSSadaf EbrahimiNo match 6916*22dc650dSSadaf Ebrahimi 6917*22dc650dSSadaf Ebrahimi/(?'abc'\w+):\g{abc}{2}/ 6918*22dc650dSSadaf Ebrahimi a:aaxyz 6919*22dc650dSSadaf Ebrahimi 0: a:aa 6920*22dc650dSSadaf Ebrahimi 1: a 6921*22dc650dSSadaf Ebrahimi ab:ababxyz 6922*22dc650dSSadaf Ebrahimi 0: ab:abab 6923*22dc650dSSadaf Ebrahimi 1: ab 6924*22dc650dSSadaf Ebrahimi\= Expect no match 6925*22dc650dSSadaf Ebrahimi a:axyz 6926*22dc650dSSadaf EbrahimiNo match 6927*22dc650dSSadaf Ebrahimi ab:abxyz 6928*22dc650dSSadaf EbrahimiNo match 6929*22dc650dSSadaf Ebrahimi 6930*22dc650dSSadaf Ebrahimi/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x 6931*22dc650dSSadaf Ebrahimi abd 6932*22dc650dSSadaf Ebrahimi 0: abd 6933*22dc650dSSadaf Ebrahimi 1: a 6934*22dc650dSSadaf Ebrahimi ce 6935*22dc650dSSadaf Ebrahimi 0: ce 6936*22dc650dSSadaf Ebrahimi 6937*22dc650dSSadaf Ebrahimi/^(a.)\g-1Z/ 6938*22dc650dSSadaf Ebrahimi aXaXZ 6939*22dc650dSSadaf Ebrahimi 0: aXaXZ 6940*22dc650dSSadaf Ebrahimi 1: aX 6941*22dc650dSSadaf Ebrahimi 6942*22dc650dSSadaf Ebrahimi/^(a.)\g{-1}Z/ 6943*22dc650dSSadaf Ebrahimi aXaXZ 6944*22dc650dSSadaf Ebrahimi 0: aXaXZ 6945*22dc650dSSadaf Ebrahimi 1: aX 6946*22dc650dSSadaf Ebrahimi 6947*22dc650dSSadaf Ebrahimi/^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x 6948*22dc650dSSadaf Ebrahimi abcd 6949*22dc650dSSadaf Ebrahimi 0: ab 6950*22dc650dSSadaf Ebrahimi 6951*22dc650dSSadaf Ebrahimi/(?<all>(?:(?:a(?&all))|(b))(c?))/ 6952*22dc650dSSadaf Ebrahimi aabc 6953*22dc650dSSadaf Ebrahimi 0: aabc 6954*22dc650dSSadaf Ebrahimi 1: aabc 6955*22dc650dSSadaf Ebrahimi 2: <unset> 6956*22dc650dSSadaf Ebrahimi 3: 6957*22dc650dSSadaf Ebrahimi 6958*22dc650dSSadaf Ebrahimi/(a(b)|(c))(?1)/ 6959*22dc650dSSadaf Ebrahimi abc 6960*22dc650dSSadaf Ebrahimi 0: abc 6961*22dc650dSSadaf Ebrahimi 1: ab 6962*22dc650dSSadaf Ebrahimi 2: b 6963*22dc650dSSadaf Ebrahimi cab 6964*22dc650dSSadaf Ebrahimi 0: cab 6965*22dc650dSSadaf Ebrahimi 1: c 6966*22dc650dSSadaf Ebrahimi 2: <unset> 6967*22dc650dSSadaf Ebrahimi 3: c 6968*22dc650dSSadaf Ebrahimi 6969*22dc650dSSadaf Ebrahimi/(?1)(a(b)|(c))/ 6970*22dc650dSSadaf Ebrahimi abc 6971*22dc650dSSadaf Ebrahimi 0: abc 6972*22dc650dSSadaf Ebrahimi 1: c 6973*22dc650dSSadaf Ebrahimi 2: <unset> 6974*22dc650dSSadaf Ebrahimi 3: c 6975*22dc650dSSadaf Ebrahimi cab 6976*22dc650dSSadaf Ebrahimi 0: cab 6977*22dc650dSSadaf Ebrahimi 1: ab 6978*22dc650dSSadaf Ebrahimi 2: b 6979*22dc650dSSadaf Ebrahimi 6980*22dc650dSSadaf Ebrahimi/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) 6981*22dc650dSSadaf Ebrahimi (?(DEFINE) 6982*22dc650dSSadaf Ebrahimi (?<NAME_PAT>[a-z]+) 6983*22dc650dSSadaf Ebrahimi (?<ADDRESS_PAT>\d+) 6984*22dc650dSSadaf Ebrahimi )/x 6985*22dc650dSSadaf Ebrahimi metcalfe 33 6986*22dc650dSSadaf Ebrahimi 0: metcalfe 33 6987*22dc650dSSadaf Ebrahimi 1: metcalfe 6988*22dc650dSSadaf Ebrahimi 2: 33 6989*22dc650dSSadaf Ebrahimi 6990*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ 6991*22dc650dSSadaf Ebrahimi 1.2.3.4 6992*22dc650dSSadaf Ebrahimi 0: 1.2.3.4 6993*22dc650dSSadaf Ebrahimi 1: <unset> 6994*22dc650dSSadaf Ebrahimi 2: .4 6995*22dc650dSSadaf Ebrahimi 131.111.10.206 6996*22dc650dSSadaf Ebrahimi 0: 131.111.10.206 6997*22dc650dSSadaf Ebrahimi 1: <unset> 6998*22dc650dSSadaf Ebrahimi 2: .206 6999*22dc650dSSadaf Ebrahimi 10.0.0.0 7000*22dc650dSSadaf Ebrahimi 0: 10.0.0.0 7001*22dc650dSSadaf Ebrahimi 1: <unset> 7002*22dc650dSSadaf Ebrahimi 2: .0 7003*22dc650dSSadaf Ebrahimi\= Expect no match 7004*22dc650dSSadaf Ebrahimi 10.6 7005*22dc650dSSadaf EbrahimiNo match 7006*22dc650dSSadaf Ebrahimi 455.3.4.5 7007*22dc650dSSadaf EbrahimiNo match 7008*22dc650dSSadaf Ebrahimi 7009*22dc650dSSadaf Ebrahimi/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ 7010*22dc650dSSadaf Ebrahimi 1.2.3.4 7011*22dc650dSSadaf Ebrahimi 0: 1.2.3.4 7012*22dc650dSSadaf Ebrahimi 1: .4 7013*22dc650dSSadaf Ebrahimi 131.111.10.206 7014*22dc650dSSadaf Ebrahimi 0: 131.111.10.206 7015*22dc650dSSadaf Ebrahimi 1: .206 7016*22dc650dSSadaf Ebrahimi 10.0.0.0 7017*22dc650dSSadaf Ebrahimi 0: 10.0.0.0 7018*22dc650dSSadaf Ebrahimi 1: .0 7019*22dc650dSSadaf Ebrahimi\= Expect no match 7020*22dc650dSSadaf Ebrahimi 10.6 7021*22dc650dSSadaf EbrahimiNo match 7022*22dc650dSSadaf Ebrahimi 455.3.4.5 7023*22dc650dSSadaf EbrahimiNo match 7024*22dc650dSSadaf Ebrahimi 7025*22dc650dSSadaf Ebrahimi/^(\w++|\s++)*$/ 7026*22dc650dSSadaf Ebrahimi now is the time for all good men to come to the aid of the party 7027*22dc650dSSadaf Ebrahimi 0: now is the time for all good men to come to the aid of the party 7028*22dc650dSSadaf Ebrahimi 1: party 7029*22dc650dSSadaf Ebrahimi\= Expect no match 7030*22dc650dSSadaf Ebrahimi this is not a line with only words and spaces! 7031*22dc650dSSadaf EbrahimiNo match 7032*22dc650dSSadaf Ebrahimi 7033*22dc650dSSadaf Ebrahimi/(\d++)(\w)/ 7034*22dc650dSSadaf Ebrahimi 12345a 7035*22dc650dSSadaf Ebrahimi 0: 12345a 7036*22dc650dSSadaf Ebrahimi 1: 12345 7037*22dc650dSSadaf Ebrahimi 2: a 7038*22dc650dSSadaf Ebrahimi\= Expect no match 7039*22dc650dSSadaf Ebrahimi 12345+ 7040*22dc650dSSadaf EbrahimiNo match 7041*22dc650dSSadaf Ebrahimi 7042*22dc650dSSadaf Ebrahimi/a++b/ 7043*22dc650dSSadaf Ebrahimi aaab 7044*22dc650dSSadaf Ebrahimi 0: aaab 7045*22dc650dSSadaf Ebrahimi 7046*22dc650dSSadaf Ebrahimi/(a++b)/ 7047*22dc650dSSadaf Ebrahimi aaab 7048*22dc650dSSadaf Ebrahimi 0: aaab 7049*22dc650dSSadaf Ebrahimi 1: aaab 7050*22dc650dSSadaf Ebrahimi 7051*22dc650dSSadaf Ebrahimi/(a++)b/ 7052*22dc650dSSadaf Ebrahimi aaab 7053*22dc650dSSadaf Ebrahimi 0: aaab 7054*22dc650dSSadaf Ebrahimi 1: aaa 7055*22dc650dSSadaf Ebrahimi 7056*22dc650dSSadaf Ebrahimi/([^()]++|\([^()]*\))+/ 7057*22dc650dSSadaf Ebrahimi ((abc(ade)ufh()()x 7058*22dc650dSSadaf Ebrahimi 0: abc(ade)ufh()()x 7059*22dc650dSSadaf Ebrahimi 1: x 7060*22dc650dSSadaf Ebrahimi 7061*22dc650dSSadaf Ebrahimi/\(([^()]++|\([^()]+\))+\)/ 7062*22dc650dSSadaf Ebrahimi (abc) 7063*22dc650dSSadaf Ebrahimi 0: (abc) 7064*22dc650dSSadaf Ebrahimi 1: abc 7065*22dc650dSSadaf Ebrahimi (abc(def)xyz) 7066*22dc650dSSadaf Ebrahimi 0: (abc(def)xyz) 7067*22dc650dSSadaf Ebrahimi 1: xyz 7068*22dc650dSSadaf Ebrahimi\= Expect no match 7069*22dc650dSSadaf Ebrahimi ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 7070*22dc650dSSadaf EbrahimiNo match 7071*22dc650dSSadaf Ebrahimi 7072*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/ 7073*22dc650dSSadaf Ebrahimi abc 7074*22dc650dSSadaf Ebrahimi 0: abc 7075*22dc650dSSadaf Ebrahimi 1: c 7076*22dc650dSSadaf Ebrahimi a(b)c 7077*22dc650dSSadaf Ebrahimi 0: a(b)c 7078*22dc650dSSadaf Ebrahimi 1: c 7079*22dc650dSSadaf Ebrahimi a(b(c))d 7080*22dc650dSSadaf Ebrahimi 0: a(b(c))d 7081*22dc650dSSadaf Ebrahimi 1: d 7082*22dc650dSSadaf Ebrahimi\= Expect no match) 7083*22dc650dSSadaf Ebrahimi a(b(c)d 7084*22dc650dSSadaf EbrahimiNo match 7085*22dc650dSSadaf Ebrahimi 7086*22dc650dSSadaf Ebrahimi/^>abc>([^()]|\((?1)*\))*<xyz<$/ 7087*22dc650dSSadaf Ebrahimi >abc>123<xyz< 7088*22dc650dSSadaf Ebrahimi 0: >abc>123<xyz< 7089*22dc650dSSadaf Ebrahimi 1: 3 7090*22dc650dSSadaf Ebrahimi >abc>1(2)3<xyz< 7091*22dc650dSSadaf Ebrahimi 0: >abc>1(2)3<xyz< 7092*22dc650dSSadaf Ebrahimi 1: 3 7093*22dc650dSSadaf Ebrahimi >abc>(1(2)3)<xyz< 7094*22dc650dSSadaf Ebrahimi 0: >abc>(1(2)3)<xyz< 7095*22dc650dSSadaf Ebrahimi 1: (1(2)3) 7096*22dc650dSSadaf Ebrahimi 7097*22dc650dSSadaf Ebrahimi/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i 7098*22dc650dSSadaf Ebrahimi 1221 7099*22dc650dSSadaf Ebrahimi 0: 1221 7100*22dc650dSSadaf Ebrahimi 1: 1221 7101*22dc650dSSadaf Ebrahimi 2: 1 7102*22dc650dSSadaf Ebrahimi Satanoscillatemymetallicsonatas 7103*22dc650dSSadaf Ebrahimi 0: Satanoscillatemymetallicsonatas 7104*22dc650dSSadaf Ebrahimi 1: <unset> 7105*22dc650dSSadaf Ebrahimi 2: <unset> 7106*22dc650dSSadaf Ebrahimi 3: Satanoscillatemymetallicsonatas 7107*22dc650dSSadaf Ebrahimi 4: S 7108*22dc650dSSadaf Ebrahimi AmanaplanacanalPanama 7109*22dc650dSSadaf Ebrahimi 0: AmanaplanacanalPanama 7110*22dc650dSSadaf Ebrahimi 1: <unset> 7111*22dc650dSSadaf Ebrahimi 2: <unset> 7112*22dc650dSSadaf Ebrahimi 3: AmanaplanacanalPanama 7113*22dc650dSSadaf Ebrahimi 4: A 7114*22dc650dSSadaf Ebrahimi AblewasIereIsawElba 7115*22dc650dSSadaf Ebrahimi 0: AblewasIereIsawElba 7116*22dc650dSSadaf Ebrahimi 1: <unset> 7117*22dc650dSSadaf Ebrahimi 2: <unset> 7118*22dc650dSSadaf Ebrahimi 3: AblewasIereIsawElba 7119*22dc650dSSadaf Ebrahimi 4: A 7120*22dc650dSSadaf Ebrahimi\= Expect no match 7121*22dc650dSSadaf Ebrahimi Thequickbrownfox 7122*22dc650dSSadaf EbrahimiNo match 7123*22dc650dSSadaf Ebrahimi 7124*22dc650dSSadaf Ebrahimi/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/ 7125*22dc650dSSadaf Ebrahimi 12 7126*22dc650dSSadaf Ebrahimi 0: 12 7127*22dc650dSSadaf Ebrahimi 1: 12 7128*22dc650dSSadaf Ebrahimi (((2+2)*-3)-7) 7129*22dc650dSSadaf Ebrahimi 0: (((2+2)*-3)-7) 7130*22dc650dSSadaf Ebrahimi 1: (((2+2)*-3)-7) 7131*22dc650dSSadaf Ebrahimi 2: - 7132*22dc650dSSadaf Ebrahimi -12 7133*22dc650dSSadaf Ebrahimi 0: -12 7134*22dc650dSSadaf Ebrahimi 1: -12 7135*22dc650dSSadaf Ebrahimi\= Expect no match 7136*22dc650dSSadaf Ebrahimi ((2+2)*-3)-7) 7137*22dc650dSSadaf EbrahimiNo match 7138*22dc650dSSadaf Ebrahimi 7139*22dc650dSSadaf Ebrahimi/^(x(y|(?1){2})z)/ 7140*22dc650dSSadaf Ebrahimi xyz 7141*22dc650dSSadaf Ebrahimi 0: xyz 7142*22dc650dSSadaf Ebrahimi 1: xyz 7143*22dc650dSSadaf Ebrahimi 2: y 7144*22dc650dSSadaf Ebrahimi xxyzxyzz 7145*22dc650dSSadaf Ebrahimi 0: xxyzxyzz 7146*22dc650dSSadaf Ebrahimi 1: xxyzxyzz 7147*22dc650dSSadaf Ebrahimi 2: xyzxyz 7148*22dc650dSSadaf Ebrahimi\= Expect no match 7149*22dc650dSSadaf Ebrahimi xxyzz 7150*22dc650dSSadaf EbrahimiNo match 7151*22dc650dSSadaf Ebrahimi xxyzxyzxyzz 7152*22dc650dSSadaf EbrahimiNo match 7153*22dc650dSSadaf Ebrahimi 7154*22dc650dSSadaf Ebrahimi/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x 7155*22dc650dSSadaf Ebrahimi <> 7156*22dc650dSSadaf Ebrahimi 0: <> 7157*22dc650dSSadaf Ebrahimi 1: <> 7158*22dc650dSSadaf Ebrahimi 2: <> 7159*22dc650dSSadaf Ebrahimi <abcd> 7160*22dc650dSSadaf Ebrahimi 0: <abcd> 7161*22dc650dSSadaf Ebrahimi 1: <abcd> 7162*22dc650dSSadaf Ebrahimi 2: <abcd> 7163*22dc650dSSadaf Ebrahimi <abc <123> hij> 7164*22dc650dSSadaf Ebrahimi 0: <abc <123> hij> 7165*22dc650dSSadaf Ebrahimi 1: <abc <123> hij> 7166*22dc650dSSadaf Ebrahimi 2: <abc <123> hij> 7167*22dc650dSSadaf Ebrahimi <abc <def> hij> 7168*22dc650dSSadaf Ebrahimi 0: <def> 7169*22dc650dSSadaf Ebrahimi 1: <def> 7170*22dc650dSSadaf Ebrahimi 2: <def> 7171*22dc650dSSadaf Ebrahimi <abc<>def> 7172*22dc650dSSadaf Ebrahimi 0: <abc<>def> 7173*22dc650dSSadaf Ebrahimi 1: <abc<>def> 7174*22dc650dSSadaf Ebrahimi 2: <abc<>def> 7175*22dc650dSSadaf Ebrahimi <abc<> 7176*22dc650dSSadaf Ebrahimi 0: <> 7177*22dc650dSSadaf Ebrahimi 1: <> 7178*22dc650dSSadaf Ebrahimi 2: <> 7179*22dc650dSSadaf Ebrahimi\= Expect no match 7180*22dc650dSSadaf Ebrahimi <abc 7181*22dc650dSSadaf EbrahimiNo match 7182*22dc650dSSadaf Ebrahimi 7183*22dc650dSSadaf Ebrahimi/^a+(*FAIL)/ 7184*22dc650dSSadaf Ebrahimi\= Expect no match 7185*22dc650dSSadaf Ebrahimi aaaaaa 7186*22dc650dSSadaf EbrahimiNo match 7187*22dc650dSSadaf Ebrahimi 7188*22dc650dSSadaf Ebrahimi/a+b?c+(*FAIL)/ 7189*22dc650dSSadaf Ebrahimi\= Expect no match 7190*22dc650dSSadaf Ebrahimi aaabccc 7191*22dc650dSSadaf EbrahimiNo match 7192*22dc650dSSadaf Ebrahimi 7193*22dc650dSSadaf Ebrahimi/a+b?(*PRUNE)c+(*FAIL)/ 7194*22dc650dSSadaf Ebrahimi\= Expect no match 7195*22dc650dSSadaf Ebrahimi aaabccc 7196*22dc650dSSadaf EbrahimiNo match 7197*22dc650dSSadaf Ebrahimi 7198*22dc650dSSadaf Ebrahimi/a+b?(*COMMIT)c+(*FAIL)/ 7199*22dc650dSSadaf Ebrahimi\= Expect no match 7200*22dc650dSSadaf Ebrahimi aaabccc 7201*22dc650dSSadaf EbrahimiNo match 7202*22dc650dSSadaf Ebrahimi 7203*22dc650dSSadaf Ebrahimi/a+b?(*SKIP)c+(*FAIL)/ 7204*22dc650dSSadaf Ebrahimi\= Expect no match 7205*22dc650dSSadaf Ebrahimi aaabcccaaabccc 7206*22dc650dSSadaf EbrahimiNo match 7207*22dc650dSSadaf Ebrahimi 7208*22dc650dSSadaf Ebrahimi/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ 7209*22dc650dSSadaf Ebrahimi aaaxxxxxx 7210*22dc650dSSadaf Ebrahimi 0: aaaxxxxxx 7211*22dc650dSSadaf Ebrahimi aaa++++++ 7212*22dc650dSSadaf Ebrahimi 0: aaa 7213*22dc650dSSadaf Ebrahimi bbbxxxxx 7214*22dc650dSSadaf Ebrahimi 0: bbbxxxxx 7215*22dc650dSSadaf Ebrahimi bbb+++++ 7216*22dc650dSSadaf Ebrahimi 0: bbb 7217*22dc650dSSadaf Ebrahimi cccxxxx 7218*22dc650dSSadaf Ebrahimi 0: cccxxxx 7219*22dc650dSSadaf Ebrahimi ccc++++ 7220*22dc650dSSadaf Ebrahimi 0: ccc 7221*22dc650dSSadaf Ebrahimi dddddddd 7222*22dc650dSSadaf Ebrahimi 0: ddd 7223*22dc650dSSadaf Ebrahimi 7224*22dc650dSSadaf Ebrahimi/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ 7225*22dc650dSSadaf Ebrahimi aaaxxxxxx 7226*22dc650dSSadaf Ebrahimi 0: aaaxxxxxx 7227*22dc650dSSadaf Ebrahimi 1: aaaxxxxxx 7228*22dc650dSSadaf Ebrahimi aaa++++++ 7229*22dc650dSSadaf Ebrahimi 0: aaa 7230*22dc650dSSadaf Ebrahimi 1: aaa 7231*22dc650dSSadaf Ebrahimi bbbxxxxx 7232*22dc650dSSadaf Ebrahimi 0: bbbxxxxx 7233*22dc650dSSadaf Ebrahimi 1: bbbxxxxx 7234*22dc650dSSadaf Ebrahimi bbb+++++ 7235*22dc650dSSadaf Ebrahimi 0: bbb 7236*22dc650dSSadaf Ebrahimi 1: bbb 7237*22dc650dSSadaf Ebrahimi cccxxxx 7238*22dc650dSSadaf Ebrahimi 0: cccxxxx 7239*22dc650dSSadaf Ebrahimi 1: cccxxxx 7240*22dc650dSSadaf Ebrahimi ccc++++ 7241*22dc650dSSadaf Ebrahimi 0: ccc 7242*22dc650dSSadaf Ebrahimi 1: ccc 7243*22dc650dSSadaf Ebrahimi dddddddd 7244*22dc650dSSadaf Ebrahimi 0: ddd 7245*22dc650dSSadaf Ebrahimi 1: ddd 7246*22dc650dSSadaf Ebrahimi 7247*22dc650dSSadaf Ebrahimi/a+b?(*THEN)c+(*FAIL)/ 7248*22dc650dSSadaf Ebrahimi\= Expect no match 7249*22dc650dSSadaf Ebrahimi aaabccc 7250*22dc650dSSadaf EbrahimiNo match 7251*22dc650dSSadaf Ebrahimi 7252*22dc650dSSadaf Ebrahimi/(A (A|B(*ACCEPT)|C) D)(E)/x 7253*22dc650dSSadaf Ebrahimi AB 7254*22dc650dSSadaf Ebrahimi 0: AB 7255*22dc650dSSadaf Ebrahimi 1: AB 7256*22dc650dSSadaf Ebrahimi 2: B 7257*22dc650dSSadaf Ebrahimi ABX 7258*22dc650dSSadaf Ebrahimi 0: AB 7259*22dc650dSSadaf Ebrahimi 1: AB 7260*22dc650dSSadaf Ebrahimi 2: B 7261*22dc650dSSadaf Ebrahimi AADE 7262*22dc650dSSadaf Ebrahimi 0: AADE 7263*22dc650dSSadaf Ebrahimi 1: AAD 7264*22dc650dSSadaf Ebrahimi 2: A 7265*22dc650dSSadaf Ebrahimi 3: E 7266*22dc650dSSadaf Ebrahimi ACDE 7267*22dc650dSSadaf Ebrahimi 0: ACDE 7268*22dc650dSSadaf Ebrahimi 1: ACD 7269*22dc650dSSadaf Ebrahimi 2: C 7270*22dc650dSSadaf Ebrahimi 3: E 7271*22dc650dSSadaf Ebrahimi\= Expect no match 7272*22dc650dSSadaf Ebrahimi AD 7273*22dc650dSSadaf EbrahimiNo match 7274*22dc650dSSadaf Ebrahimi 7275*22dc650dSSadaf Ebrahimi/^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i 7276*22dc650dSSadaf Ebrahimi 1221 7277*22dc650dSSadaf Ebrahimi 0: 1221 7278*22dc650dSSadaf Ebrahimi 1: 1221 7279*22dc650dSSadaf Ebrahimi 2: 1 7280*22dc650dSSadaf Ebrahimi Satan, oscillate my metallic sonatas! 7281*22dc650dSSadaf Ebrahimi 0: Satan, oscillate my metallic sonatas! 7282*22dc650dSSadaf Ebrahimi 1: <unset> 7283*22dc650dSSadaf Ebrahimi 2: <unset> 7284*22dc650dSSadaf Ebrahimi 3: Satan, oscillate my metallic sonatas 7285*22dc650dSSadaf Ebrahimi 4: S 7286*22dc650dSSadaf Ebrahimi A man, a plan, a canal: Panama! 7287*22dc650dSSadaf Ebrahimi 0: A man, a plan, a canal: Panama! 7288*22dc650dSSadaf Ebrahimi 1: <unset> 7289*22dc650dSSadaf Ebrahimi 2: <unset> 7290*22dc650dSSadaf Ebrahimi 3: A man, a plan, a canal: Panama 7291*22dc650dSSadaf Ebrahimi 4: A 7292*22dc650dSSadaf Ebrahimi Able was I ere I saw Elba. 7293*22dc650dSSadaf Ebrahimi 0: Able was I ere I saw Elba. 7294*22dc650dSSadaf Ebrahimi 1: <unset> 7295*22dc650dSSadaf Ebrahimi 2: <unset> 7296*22dc650dSSadaf Ebrahimi 3: Able was I ere I saw Elba 7297*22dc650dSSadaf Ebrahimi 4: A 7298*22dc650dSSadaf Ebrahimi\= Expect no match 7299*22dc650dSSadaf Ebrahimi The quick brown fox 7300*22dc650dSSadaf EbrahimiNo match 7301*22dc650dSSadaf Ebrahimi 7302*22dc650dSSadaf Ebrahimi/^((.)(?1)\2|.)$/ 7303*22dc650dSSadaf Ebrahimi a 7304*22dc650dSSadaf Ebrahimi 0: a 7305*22dc650dSSadaf Ebrahimi 1: a 7306*22dc650dSSadaf Ebrahimi aba 7307*22dc650dSSadaf Ebrahimi 0: aba 7308*22dc650dSSadaf Ebrahimi 1: aba 7309*22dc650dSSadaf Ebrahimi 2: a 7310*22dc650dSSadaf Ebrahimi aabaa 7311*22dc650dSSadaf Ebrahimi 0: aabaa 7312*22dc650dSSadaf Ebrahimi 1: aabaa 7313*22dc650dSSadaf Ebrahimi 2: a 7314*22dc650dSSadaf Ebrahimi abcdcba 7315*22dc650dSSadaf Ebrahimi 0: abcdcba 7316*22dc650dSSadaf Ebrahimi 1: abcdcba 7317*22dc650dSSadaf Ebrahimi 2: a 7318*22dc650dSSadaf Ebrahimi pqaabaaqp 7319*22dc650dSSadaf Ebrahimi 0: pqaabaaqp 7320*22dc650dSSadaf Ebrahimi 1: pqaabaaqp 7321*22dc650dSSadaf Ebrahimi 2: p 7322*22dc650dSSadaf Ebrahimi ablewasiereisawelba 7323*22dc650dSSadaf Ebrahimi 0: ablewasiereisawelba 7324*22dc650dSSadaf Ebrahimi 1: ablewasiereisawelba 7325*22dc650dSSadaf Ebrahimi 2: a 7326*22dc650dSSadaf Ebrahimi\= Expect no match 7327*22dc650dSSadaf Ebrahimi rhubarb 7328*22dc650dSSadaf EbrahimiNo match 7329*22dc650dSSadaf Ebrahimi the quick brown fox 7330*22dc650dSSadaf EbrahimiNo match 7331*22dc650dSSadaf Ebrahimi 7332*22dc650dSSadaf Ebrahimi/(a)(?<=b(?1))/ 7333*22dc650dSSadaf Ebrahimi baz 7334*22dc650dSSadaf Ebrahimi 0: a 7335*22dc650dSSadaf Ebrahimi 1: a 7336*22dc650dSSadaf Ebrahimi\= Expect no match 7337*22dc650dSSadaf Ebrahimi caz 7338*22dc650dSSadaf EbrahimiNo match 7339*22dc650dSSadaf Ebrahimi 7340*22dc650dSSadaf Ebrahimi/(?<=b(?1))(a)/ 7341*22dc650dSSadaf Ebrahimi zbaaz 7342*22dc650dSSadaf Ebrahimi 0: a 7343*22dc650dSSadaf Ebrahimi 1: a 7344*22dc650dSSadaf Ebrahimi\= Expect no match 7345*22dc650dSSadaf Ebrahimi aaa 7346*22dc650dSSadaf EbrahimiNo match 7347*22dc650dSSadaf Ebrahimi 7348*22dc650dSSadaf Ebrahimi/(?<X>a)(?<=b(?&X))/ 7349*22dc650dSSadaf Ebrahimi baz 7350*22dc650dSSadaf Ebrahimi 0: a 7351*22dc650dSSadaf Ebrahimi 1: a 7352*22dc650dSSadaf Ebrahimi 7353*22dc650dSSadaf Ebrahimi/^(?|(abc)|(def))\1/ 7354*22dc650dSSadaf Ebrahimi abcabc 7355*22dc650dSSadaf Ebrahimi 0: abcabc 7356*22dc650dSSadaf Ebrahimi 1: abc 7357*22dc650dSSadaf Ebrahimi defdef 7358*22dc650dSSadaf Ebrahimi 0: defdef 7359*22dc650dSSadaf Ebrahimi 1: def 7360*22dc650dSSadaf Ebrahimi\= Expect no match 7361*22dc650dSSadaf Ebrahimi abcdef 7362*22dc650dSSadaf EbrahimiNo match 7363*22dc650dSSadaf Ebrahimi defabc 7364*22dc650dSSadaf EbrahimiNo match 7365*22dc650dSSadaf Ebrahimi 7366*22dc650dSSadaf Ebrahimi/^(?|(abc)|(def))(?1)/ 7367*22dc650dSSadaf Ebrahimi abcabc 7368*22dc650dSSadaf Ebrahimi 0: abcabc 7369*22dc650dSSadaf Ebrahimi 1: abc 7370*22dc650dSSadaf Ebrahimi defabc 7371*22dc650dSSadaf Ebrahimi 0: defabc 7372*22dc650dSSadaf Ebrahimi 1: def 7373*22dc650dSSadaf Ebrahimi\= Expect no match 7374*22dc650dSSadaf Ebrahimi defdef 7375*22dc650dSSadaf EbrahimiNo match 7376*22dc650dSSadaf Ebrahimi abcdef 7377*22dc650dSSadaf EbrahimiNo match 7378*22dc650dSSadaf Ebrahimi 7379*22dc650dSSadaf Ebrahimi/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/x,dupnames 7380*22dc650dSSadaf Ebrahimi a\"aaaaa 7381*22dc650dSSadaf Ebrahimi 0: a"aaaaa 7382*22dc650dSSadaf Ebrahimi 1: " 7383*22dc650dSSadaf Ebrahimi 2: <unset> 7384*22dc650dSSadaf Ebrahimi 3: " 7385*22dc650dSSadaf Ebrahimi b\"aaaaa 7386*22dc650dSSadaf Ebrahimi 0: b"aaaaa 7387*22dc650dSSadaf Ebrahimi 1: <unset> 7388*22dc650dSSadaf Ebrahimi 2: <unset> 7389*22dc650dSSadaf Ebrahimi 3: <unset> 7390*22dc650dSSadaf Ebrahimi 4: " 7391*22dc650dSSadaf Ebrahimi 5: <unset> 7392*22dc650dSSadaf Ebrahimi 6: " 7393*22dc650dSSadaf Ebrahimi\= Expect no match 7394*22dc650dSSadaf Ebrahimi b\"11111 7395*22dc650dSSadaf EbrahimiNo match 7396*22dc650dSSadaf Ebrahimi 7397*22dc650dSSadaf Ebrahimi/(?:(?1)|B)(A(*F)|C)/ 7398*22dc650dSSadaf Ebrahimi ABCD 7399*22dc650dSSadaf Ebrahimi 0: BC 7400*22dc650dSSadaf Ebrahimi 1: C 7401*22dc650dSSadaf Ebrahimi CCD 7402*22dc650dSSadaf Ebrahimi 0: CC 7403*22dc650dSSadaf Ebrahimi 1: C 7404*22dc650dSSadaf Ebrahimi\= Expect no match 7405*22dc650dSSadaf Ebrahimi CAD 7406*22dc650dSSadaf EbrahimiNo match 7407*22dc650dSSadaf Ebrahimi 7408*22dc650dSSadaf Ebrahimi/^(?:(?1)|B)(A(*F)|C)/ 7409*22dc650dSSadaf Ebrahimi CCD 7410*22dc650dSSadaf Ebrahimi 0: CC 7411*22dc650dSSadaf Ebrahimi 1: C 7412*22dc650dSSadaf Ebrahimi BCD 7413*22dc650dSSadaf Ebrahimi 0: BC 7414*22dc650dSSadaf Ebrahimi 1: C 7415*22dc650dSSadaf Ebrahimi\= Expect no match 7416*22dc650dSSadaf Ebrahimi ABCD 7417*22dc650dSSadaf EbrahimiNo match 7418*22dc650dSSadaf Ebrahimi CAD 7419*22dc650dSSadaf EbrahimiNo match 7420*22dc650dSSadaf Ebrahimi BAD 7421*22dc650dSSadaf EbrahimiNo match 7422*22dc650dSSadaf Ebrahimi 7423*22dc650dSSadaf Ebrahimi/(?:(?1)|B)(A(*ACCEPT)XX|C)D/ 7424*22dc650dSSadaf Ebrahimi AAD 7425*22dc650dSSadaf Ebrahimi 0: AA 7426*22dc650dSSadaf Ebrahimi 1: A 7427*22dc650dSSadaf Ebrahimi ACD 7428*22dc650dSSadaf Ebrahimi 0: ACD 7429*22dc650dSSadaf Ebrahimi 1: C 7430*22dc650dSSadaf Ebrahimi BAD 7431*22dc650dSSadaf Ebrahimi 0: BA 7432*22dc650dSSadaf Ebrahimi 1: A 7433*22dc650dSSadaf Ebrahimi BCD 7434*22dc650dSSadaf Ebrahimi 0: BCD 7435*22dc650dSSadaf Ebrahimi 1: C 7436*22dc650dSSadaf Ebrahimi BAX 7437*22dc650dSSadaf Ebrahimi 0: BA 7438*22dc650dSSadaf Ebrahimi 1: A 7439*22dc650dSSadaf Ebrahimi\= Expect no match 7440*22dc650dSSadaf Ebrahimi ACX 7441*22dc650dSSadaf EbrahimiNo match 7442*22dc650dSSadaf Ebrahimi ABC 7443*22dc650dSSadaf EbrahimiNo match 7444*22dc650dSSadaf Ebrahimi 7445*22dc650dSSadaf Ebrahimi/(?(DEFINE)(A))B(?1)C/ 7446*22dc650dSSadaf Ebrahimi BAC 7447*22dc650dSSadaf Ebrahimi 0: BAC 7448*22dc650dSSadaf Ebrahimi 7449*22dc650dSSadaf Ebrahimi/(?(DEFINE)((A)\2))B(?1)C/ 7450*22dc650dSSadaf Ebrahimi BAAC 7451*22dc650dSSadaf Ebrahimi 0: BAAC 7452*22dc650dSSadaf Ebrahimi 7453*22dc650dSSadaf Ebrahimi/(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x 7454*22dc650dSSadaf Ebrahimi (ab(cd)ef) 7455*22dc650dSSadaf Ebrahimi 0: (ab(cd)ef) 7456*22dc650dSSadaf Ebrahimi 1: (ab(cd)ef) 7457*22dc650dSSadaf Ebrahimi 2: ef 7458*22dc650dSSadaf Ebrahimi 7459*22dc650dSSadaf Ebrahimi/^(?=a(*SKIP)b|ac)/ 7460*22dc650dSSadaf Ebrahimi\= Expect no match 7461*22dc650dSSadaf Ebrahimi ac 7462*22dc650dSSadaf EbrahimiNo match 7463*22dc650dSSadaf Ebrahimi 7464*22dc650dSSadaf Ebrahimi/^(?=a(*PRUNE)b)/ 7465*22dc650dSSadaf Ebrahimi ab 7466*22dc650dSSadaf Ebrahimi 0: 7467*22dc650dSSadaf Ebrahimi\= Expect no match 7468*22dc650dSSadaf Ebrahimi ac 7469*22dc650dSSadaf EbrahimiNo match 7470*22dc650dSSadaf Ebrahimi 7471*22dc650dSSadaf Ebrahimi/^(?=a(*ACCEPT)b)/ 7472*22dc650dSSadaf Ebrahimi ac 7473*22dc650dSSadaf Ebrahimi 0: 7474*22dc650dSSadaf Ebrahimi 7475*22dc650dSSadaf Ebrahimi/(?>a\Kb)/ 7476*22dc650dSSadaf Ebrahimi ab 7477*22dc650dSSadaf Ebrahimi 0: b 7478*22dc650dSSadaf Ebrahimi 7479*22dc650dSSadaf Ebrahimi/((?>a\Kb))/ 7480*22dc650dSSadaf Ebrahimi ab 7481*22dc650dSSadaf Ebrahimi 0: b 7482*22dc650dSSadaf Ebrahimi 1: ab 7483*22dc650dSSadaf Ebrahimi 7484*22dc650dSSadaf Ebrahimi/(a\Kb)/ 7485*22dc650dSSadaf Ebrahimi ab 7486*22dc650dSSadaf Ebrahimi 0: b 7487*22dc650dSSadaf Ebrahimi 1: ab 7488*22dc650dSSadaf Ebrahimi 7489*22dc650dSSadaf Ebrahimi/^a\Kcz|ac/ 7490*22dc650dSSadaf Ebrahimi ac 7491*22dc650dSSadaf Ebrahimi 0: ac 7492*22dc650dSSadaf Ebrahimi 7493*22dc650dSSadaf Ebrahimi/(?>a\Kbz|ab)/ 7494*22dc650dSSadaf Ebrahimi ab 7495*22dc650dSSadaf Ebrahimi 0: ab 7496*22dc650dSSadaf Ebrahimi 7497*22dc650dSSadaf Ebrahimi/^(?&t)(?(DEFINE)(?<t>a\Kb))$/ 7498*22dc650dSSadaf Ebrahimi ab 7499*22dc650dSSadaf Ebrahimi 0: b 7500*22dc650dSSadaf Ebrahimi 7501*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/ 7502*22dc650dSSadaf Ebrahimi a(b)c 7503*22dc650dSSadaf Ebrahimi 0: a(b)c 7504*22dc650dSSadaf Ebrahimi 1: c 7505*22dc650dSSadaf Ebrahimi a(b(c)d)e 7506*22dc650dSSadaf Ebrahimi 0: a(b(c)d)e 7507*22dc650dSSadaf Ebrahimi 1: e 7508*22dc650dSSadaf Ebrahimi 7509*22dc650dSSadaf Ebrahimi/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/ 7510*22dc650dSSadaf Ebrahimi 0 7511*22dc650dSSadaf Ebrahimi 0: 0 7512*22dc650dSSadaf Ebrahimi 1: 0 7513*22dc650dSSadaf Ebrahimi 00 7514*22dc650dSSadaf Ebrahimi 0: 00 7515*22dc650dSSadaf Ebrahimi 1: 00 7516*22dc650dSSadaf Ebrahimi 2: 0 7517*22dc650dSSadaf Ebrahimi 0000 7518*22dc650dSSadaf Ebrahimi 0: 0000 7519*22dc650dSSadaf Ebrahimi 1: 0000 7520*22dc650dSSadaf Ebrahimi 2: 0 7521*22dc650dSSadaf Ebrahimi 7522*22dc650dSSadaf Ebrahimi/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/ 7523*22dc650dSSadaf Ebrahimi 0 7524*22dc650dSSadaf Ebrahimi 0: 0 7525*22dc650dSSadaf Ebrahimi 1: 0 7526*22dc650dSSadaf Ebrahimi 2: 0 7527*22dc650dSSadaf Ebrahimi 00 7528*22dc650dSSadaf Ebrahimi 0: 0 7529*22dc650dSSadaf Ebrahimi 1: 0 7530*22dc650dSSadaf Ebrahimi 2: 0 7531*22dc650dSSadaf Ebrahimi 0000 7532*22dc650dSSadaf Ebrahimi 0: 0 7533*22dc650dSSadaf Ebrahimi 1: 0 7534*22dc650dSSadaf Ebrahimi 2: 0 7535*22dc650dSSadaf Ebrahimi 7536*22dc650dSSadaf Ebrahimi# This one does fail, as expected, in Perl. It needs the complex item at the 7537*22dc650dSSadaf Ebrahimi# end of the pattern. A single letter instead of (B|D) makes it not fail, which 7538*22dc650dSSadaf Ebrahimi# I think is a Perl bug. 7539*22dc650dSSadaf Ebrahimi 7540*22dc650dSSadaf Ebrahimi/A(*COMMIT)(B|D)/ 7541*22dc650dSSadaf Ebrahimi\= Expect no match 7542*22dc650dSSadaf Ebrahimi ACABX 7543*22dc650dSSadaf EbrahimiNo match 7544*22dc650dSSadaf Ebrahimi 7545*22dc650dSSadaf Ebrahimi# Check the use of names for failure 7546*22dc650dSSadaf Ebrahimi 7547*22dc650dSSadaf Ebrahimi/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/mark 7548*22dc650dSSadaf Ebrahimi\= Expect no match 7549*22dc650dSSadaf Ebrahimi AC 7550*22dc650dSSadaf EbrahimiNo match, mark = A 7551*22dc650dSSadaf Ebrahimi CB 7552*22dc650dSSadaf EbrahimiNo match, mark = B 7553*22dc650dSSadaf Ebrahimi 7554*22dc650dSSadaf Ebrahimi/(*MARK:A)(*SKIP:B)(C|X)/mark 7555*22dc650dSSadaf Ebrahimi C 7556*22dc650dSSadaf Ebrahimi 0: C 7557*22dc650dSSadaf Ebrahimi 1: C 7558*22dc650dSSadaf EbrahimiMK: A 7559*22dc650dSSadaf Ebrahimi\= Expect no match 7560*22dc650dSSadaf Ebrahimi D 7561*22dc650dSSadaf EbrahimiNo match, mark = A 7562*22dc650dSSadaf Ebrahimi 7563*22dc650dSSadaf Ebrahimi/^(A(*THEN:A)B|C(*THEN:B)D)/mark 7564*22dc650dSSadaf Ebrahimi\= Expect no match 7565*22dc650dSSadaf Ebrahimi CB 7566*22dc650dSSadaf EbrahimiNo match, mark = B 7567*22dc650dSSadaf Ebrahimi 7568*22dc650dSSadaf Ebrahimi/^(?:A(*THEN:A)B|C(*THEN:B)D)/mark 7569*22dc650dSSadaf Ebrahimi\= Expect no match 7570*22dc650dSSadaf Ebrahimi CB 7571*22dc650dSSadaf EbrahimiNo match, mark = B 7572*22dc650dSSadaf Ebrahimi 7573*22dc650dSSadaf Ebrahimi/^(?>A(*THEN:A)B|C(*THEN:B)D)/mark 7574*22dc650dSSadaf Ebrahimi\= Expect no match 7575*22dc650dSSadaf Ebrahimi CB 7576*22dc650dSSadaf EbrahimiNo match, mark = B 7577*22dc650dSSadaf Ebrahimi 7578*22dc650dSSadaf Ebrahimi# This should succeed, as the skip causes bump to offset 1 (the mark). Note 7579*22dc650dSSadaf Ebrahimi# that we have to have something complicated such as (B|Z) at the end because, 7580*22dc650dSSadaf Ebrahimi# for Perl, a simple character somehow causes an unwanted optimization to mess 7581*22dc650dSSadaf Ebrahimi# with the handling of backtracking verbs. 7582*22dc650dSSadaf Ebrahimi 7583*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/x,mark 7584*22dc650dSSadaf Ebrahimi AAAC 7585*22dc650dSSadaf Ebrahimi 0: AC 7586*22dc650dSSadaf Ebrahimi 7587*22dc650dSSadaf Ebrahimi# Test skipping over a non-matching mark. 7588*22dc650dSSadaf Ebrahimi 7589*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/x,mark 7590*22dc650dSSadaf Ebrahimi AAAC 7591*22dc650dSSadaf Ebrahimi 0: AC 7592*22dc650dSSadaf Ebrahimi 7593*22dc650dSSadaf Ebrahimi# Check shorthand for MARK. 7594*22dc650dSSadaf Ebrahimi 7595*22dc650dSSadaf Ebrahimi/A(*:A)A+(*SKIP:A)(B|Z) | AC/x,mark 7596*22dc650dSSadaf Ebrahimi AAAC 7597*22dc650dSSadaf Ebrahimi 0: AC 7598*22dc650dSSadaf Ebrahimi 7599*22dc650dSSadaf Ebrahimi/(*:A)A+(*SKIP:A)(B|Z)/mark 7600*22dc650dSSadaf Ebrahimi\= Expect no match 7601*22dc650dSSadaf Ebrahimi AAAC 7602*22dc650dSSadaf EbrahimiNo match, mark = A 7603*22dc650dSSadaf Ebrahimi 7604*22dc650dSSadaf Ebrahimi# This should succeed, as a non-existent skip name disables the skip. 7605*22dc650dSSadaf Ebrahimi 7606*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/x,mark 7607*22dc650dSSadaf Ebrahimi AAAC 7608*22dc650dSSadaf Ebrahimi 0: AC 7609*22dc650dSSadaf Ebrahimi 7610*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/x,mark 7611*22dc650dSSadaf Ebrahimi AAAC 7612*22dc650dSSadaf Ebrahimi 0: AC 7613*22dc650dSSadaf EbrahimiMK: B 7614*22dc650dSSadaf Ebrahimi 7615*22dc650dSSadaf Ebrahimi# COMMIT at the start of a pattern should act like an anchor. Again, however, 7616*22dc650dSSadaf Ebrahimi# we need the complication for Perl. 7617*22dc650dSSadaf Ebrahimi 7618*22dc650dSSadaf Ebrahimi/(*COMMIT)(A|P)(B|P)(C|P)/ 7619*22dc650dSSadaf Ebrahimi ABCDEFG 7620*22dc650dSSadaf Ebrahimi 0: ABC 7621*22dc650dSSadaf Ebrahimi 1: A 7622*22dc650dSSadaf Ebrahimi 2: B 7623*22dc650dSSadaf Ebrahimi 3: C 7624*22dc650dSSadaf Ebrahimi\= Expect no match 7625*22dc650dSSadaf Ebrahimi DEFGABC 7626*22dc650dSSadaf EbrahimiNo match 7627*22dc650dSSadaf Ebrahimi 7628*22dc650dSSadaf Ebrahimi# COMMIT inside an atomic group can't stop backtracking over the group. 7629*22dc650dSSadaf Ebrahimi 7630*22dc650dSSadaf Ebrahimi/(\w+)(?>b(*COMMIT))\w{2}/ 7631*22dc650dSSadaf Ebrahimi abbb 7632*22dc650dSSadaf Ebrahimi 0: abbb 7633*22dc650dSSadaf Ebrahimi 1: a 7634*22dc650dSSadaf Ebrahimi 7635*22dc650dSSadaf Ebrahimi/(\w+)b(*COMMIT)\w{2}/ 7636*22dc650dSSadaf Ebrahimi\= Expect no match 7637*22dc650dSSadaf Ebrahimi abbb 7638*22dc650dSSadaf EbrahimiNo match 7639*22dc650dSSadaf Ebrahimi 7640*22dc650dSSadaf Ebrahimi# Check opening parens in comment when seeking forward reference. 7641*22dc650dSSadaf Ebrahimi 7642*22dc650dSSadaf Ebrahimi/(?&t)(?#()(?(DEFINE)(?<t>a))/ 7643*22dc650dSSadaf Ebrahimi bac 7644*22dc650dSSadaf Ebrahimi 0: a 7645*22dc650dSSadaf Ebrahimi 7646*22dc650dSSadaf Ebrahimi# COMMIT should override THEN. 7647*22dc650dSSadaf Ebrahimi 7648*22dc650dSSadaf Ebrahimi/(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/ 7649*22dc650dSSadaf Ebrahimi\= Expect no match 7650*22dc650dSSadaf Ebrahimi yes 7651*22dc650dSSadaf EbrahimiNo match 7652*22dc650dSSadaf Ebrahimi 7653*22dc650dSSadaf Ebrahimi/(?>(*COMMIT)(yes|no)(*THEN)(*F))?/ 7654*22dc650dSSadaf Ebrahimi\= Expect no match 7655*22dc650dSSadaf Ebrahimi yes 7656*22dc650dSSadaf EbrahimiNo match 7657*22dc650dSSadaf Ebrahimi 7658*22dc650dSSadaf Ebrahimi/b?(*SKIP)c/ 7659*22dc650dSSadaf Ebrahimi bc 7660*22dc650dSSadaf Ebrahimi 0: bc 7661*22dc650dSSadaf Ebrahimi abc 7662*22dc650dSSadaf Ebrahimi 0: bc 7663*22dc650dSSadaf Ebrahimi 7664*22dc650dSSadaf Ebrahimi/(*SKIP)bc/ 7665*22dc650dSSadaf Ebrahimi\= Expect no match 7666*22dc650dSSadaf Ebrahimi a 7667*22dc650dSSadaf EbrahimiNo match 7668*22dc650dSSadaf Ebrahimi 7669*22dc650dSSadaf Ebrahimi/(*SKIP)b/ 7670*22dc650dSSadaf Ebrahimi\= Expect no match 7671*22dc650dSSadaf Ebrahimi a 7672*22dc650dSSadaf EbrahimiNo match 7673*22dc650dSSadaf Ebrahimi 7674*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)xxx|)+/ 7675*22dc650dSSadaf Ebrahimi xxx 7676*22dc650dSSadaf Ebrahimi 0: 7677*22dc650dSSadaf Ebrahimi 1: 7678*22dc650dSSadaf Ebrahimi 7679*22dc650dSSadaf Ebrahimi/(?i:([^b]))(?1)/ 7680*22dc650dSSadaf Ebrahimi aa 7681*22dc650dSSadaf Ebrahimi 0: aa 7682*22dc650dSSadaf Ebrahimi 1: a 7683*22dc650dSSadaf Ebrahimi aA 7684*22dc650dSSadaf Ebrahimi 0: aA 7685*22dc650dSSadaf Ebrahimi 1: a 7686*22dc650dSSadaf Ebrahimi\= Expect no match 7687*22dc650dSSadaf Ebrahimi ab 7688*22dc650dSSadaf EbrahimiNo match 7689*22dc650dSSadaf Ebrahimi aB 7690*22dc650dSSadaf EbrahimiNo match 7691*22dc650dSSadaf Ebrahimi Ba 7692*22dc650dSSadaf EbrahimiNo match 7693*22dc650dSSadaf Ebrahimi ba 7694*22dc650dSSadaf EbrahimiNo match 7695*22dc650dSSadaf Ebrahimi 7696*22dc650dSSadaf Ebrahimi/^(?&t)*+(?(DEFINE)(?<t>a))\w$/ 7697*22dc650dSSadaf Ebrahimi aaaaaaX 7698*22dc650dSSadaf Ebrahimi 0: aaaaaaX 7699*22dc650dSSadaf Ebrahimi\= Expect no match 7700*22dc650dSSadaf Ebrahimi aaaaaa 7701*22dc650dSSadaf EbrahimiNo match 7702*22dc650dSSadaf Ebrahimi 7703*22dc650dSSadaf Ebrahimi/^(?&t)*(?(DEFINE)(?<t>a))\w$/ 7704*22dc650dSSadaf Ebrahimi aaaaaaX 7705*22dc650dSSadaf Ebrahimi 0: aaaaaaX 7706*22dc650dSSadaf Ebrahimi aaaaaa 7707*22dc650dSSadaf Ebrahimi 0: aaaaaa 7708*22dc650dSSadaf Ebrahimi 7709*22dc650dSSadaf Ebrahimi/^(a)*+(\w)/ 7710*22dc650dSSadaf Ebrahimi aaaaX 7711*22dc650dSSadaf Ebrahimi 0: aaaaX 7712*22dc650dSSadaf Ebrahimi 1: a 7713*22dc650dSSadaf Ebrahimi 2: X 7714*22dc650dSSadaf Ebrahimi YZ 7715*22dc650dSSadaf Ebrahimi 0: Y 7716*22dc650dSSadaf Ebrahimi 1: <unset> 7717*22dc650dSSadaf Ebrahimi 2: Y 7718*22dc650dSSadaf Ebrahimi\= Expect no match 7719*22dc650dSSadaf Ebrahimi aaaa 7720*22dc650dSSadaf EbrahimiNo match 7721*22dc650dSSadaf Ebrahimi 7722*22dc650dSSadaf Ebrahimi/^(?:a)*+(\w)/ 7723*22dc650dSSadaf Ebrahimi aaaaX 7724*22dc650dSSadaf Ebrahimi 0: aaaaX 7725*22dc650dSSadaf Ebrahimi 1: X 7726*22dc650dSSadaf Ebrahimi YZ 7727*22dc650dSSadaf Ebrahimi 0: Y 7728*22dc650dSSadaf Ebrahimi 1: Y 7729*22dc650dSSadaf Ebrahimi\= Expect no match 7730*22dc650dSSadaf Ebrahimi aaaa 7731*22dc650dSSadaf EbrahimiNo match 7732*22dc650dSSadaf Ebrahimi 7733*22dc650dSSadaf Ebrahimi/^(a)++(\w)/ 7734*22dc650dSSadaf Ebrahimi aaaaX 7735*22dc650dSSadaf Ebrahimi 0: aaaaX 7736*22dc650dSSadaf Ebrahimi 1: a 7737*22dc650dSSadaf Ebrahimi 2: X 7738*22dc650dSSadaf Ebrahimi\= Expect no match 7739*22dc650dSSadaf Ebrahimi aaaa 7740*22dc650dSSadaf EbrahimiNo match 7741*22dc650dSSadaf Ebrahimi YZ 7742*22dc650dSSadaf EbrahimiNo match 7743*22dc650dSSadaf Ebrahimi 7744*22dc650dSSadaf Ebrahimi/^(?:a)++(\w)/ 7745*22dc650dSSadaf Ebrahimi aaaaX 7746*22dc650dSSadaf Ebrahimi 0: aaaaX 7747*22dc650dSSadaf Ebrahimi 1: X 7748*22dc650dSSadaf Ebrahimi\= Expect no match 7749*22dc650dSSadaf Ebrahimi aaaa 7750*22dc650dSSadaf EbrahimiNo match 7751*22dc650dSSadaf Ebrahimi YZ 7752*22dc650dSSadaf EbrahimiNo match 7753*22dc650dSSadaf Ebrahimi 7754*22dc650dSSadaf Ebrahimi/^(a)?+(\w)/ 7755*22dc650dSSadaf Ebrahimi aaaaX 7756*22dc650dSSadaf Ebrahimi 0: aa 7757*22dc650dSSadaf Ebrahimi 1: a 7758*22dc650dSSadaf Ebrahimi 2: a 7759*22dc650dSSadaf Ebrahimi YZ 7760*22dc650dSSadaf Ebrahimi 0: Y 7761*22dc650dSSadaf Ebrahimi 1: <unset> 7762*22dc650dSSadaf Ebrahimi 2: Y 7763*22dc650dSSadaf Ebrahimi 7764*22dc650dSSadaf Ebrahimi/^(?:a)?+(\w)/ 7765*22dc650dSSadaf Ebrahimi aaaaX 7766*22dc650dSSadaf Ebrahimi 0: aa 7767*22dc650dSSadaf Ebrahimi 1: a 7768*22dc650dSSadaf Ebrahimi YZ 7769*22dc650dSSadaf Ebrahimi 0: Y 7770*22dc650dSSadaf Ebrahimi 1: Y 7771*22dc650dSSadaf Ebrahimi 7772*22dc650dSSadaf Ebrahimi/^(a){2,}+(\w)/ 7773*22dc650dSSadaf Ebrahimi aaaaX 7774*22dc650dSSadaf Ebrahimi 0: aaaaX 7775*22dc650dSSadaf Ebrahimi 1: a 7776*22dc650dSSadaf Ebrahimi 2: X 7777*22dc650dSSadaf Ebrahimi\= Expect no match 7778*22dc650dSSadaf Ebrahimi aaa 7779*22dc650dSSadaf EbrahimiNo match 7780*22dc650dSSadaf Ebrahimi YZ 7781*22dc650dSSadaf EbrahimiNo match 7782*22dc650dSSadaf Ebrahimi 7783*22dc650dSSadaf Ebrahimi/^(?:a){2,}+(\w)/ 7784*22dc650dSSadaf Ebrahimi aaaaX 7785*22dc650dSSadaf Ebrahimi 0: aaaaX 7786*22dc650dSSadaf Ebrahimi 1: X 7787*22dc650dSSadaf Ebrahimi\= Expect no match 7788*22dc650dSSadaf Ebrahimi aaa 7789*22dc650dSSadaf EbrahimiNo match 7790*22dc650dSSadaf Ebrahimi YZ 7791*22dc650dSSadaf EbrahimiNo match 7792*22dc650dSSadaf Ebrahimi 7793*22dc650dSSadaf Ebrahimi/(a|)*(?1)b/ 7794*22dc650dSSadaf Ebrahimi b 7795*22dc650dSSadaf Ebrahimi 0: b 7796*22dc650dSSadaf Ebrahimi 1: 7797*22dc650dSSadaf Ebrahimi ab 7798*22dc650dSSadaf Ebrahimi 0: ab 7799*22dc650dSSadaf Ebrahimi 1: 7800*22dc650dSSadaf Ebrahimi aab 7801*22dc650dSSadaf Ebrahimi 0: aab 7802*22dc650dSSadaf Ebrahimi 1: 7803*22dc650dSSadaf Ebrahimi 7804*22dc650dSSadaf Ebrahimi/(a)++(?1)b/ 7805*22dc650dSSadaf Ebrahimi\= Expect no match 7806*22dc650dSSadaf Ebrahimi ab 7807*22dc650dSSadaf EbrahimiNo match 7808*22dc650dSSadaf Ebrahimi aab 7809*22dc650dSSadaf EbrahimiNo match 7810*22dc650dSSadaf Ebrahimi 7811*22dc650dSSadaf Ebrahimi/(a)*+(?1)b/ 7812*22dc650dSSadaf Ebrahimi\= Expect no match 7813*22dc650dSSadaf Ebrahimi ab 7814*22dc650dSSadaf EbrahimiNo match 7815*22dc650dSSadaf Ebrahimi aab 7816*22dc650dSSadaf EbrahimiNo match 7817*22dc650dSSadaf Ebrahimi 7818*22dc650dSSadaf Ebrahimi/(?1)(?:(b)){0}/ 7819*22dc650dSSadaf Ebrahimi b 7820*22dc650dSSadaf Ebrahimi 0: b 7821*22dc650dSSadaf Ebrahimi 7822*22dc650dSSadaf Ebrahimi/(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x 7823*22dc650dSSadaf Ebrahimi foo(bar(baz)+baz(bop)) 7824*22dc650dSSadaf Ebrahimi 0: foo(bar(baz)+baz(bop)) 7825*22dc650dSSadaf Ebrahimi 1: foo(bar(baz)+baz(bop)) 7826*22dc650dSSadaf Ebrahimi 2: (bar(baz)+baz(bop)) 7827*22dc650dSSadaf Ebrahimi 3: bar(baz)+baz(bop) 7828*22dc650dSSadaf Ebrahimi 7829*22dc650dSSadaf Ebrahimi/(A (A|B(*ACCEPT)|C) D)(E)/x 7830*22dc650dSSadaf Ebrahimi AB 7831*22dc650dSSadaf Ebrahimi 0: AB 7832*22dc650dSSadaf Ebrahimi 1: AB 7833*22dc650dSSadaf Ebrahimi 2: B 7834*22dc650dSSadaf Ebrahimi 7835*22dc650dSSadaf Ebrahimi/\A.*?(a|bc)/ 7836*22dc650dSSadaf Ebrahimi ba 7837*22dc650dSSadaf Ebrahimi 0: ba 7838*22dc650dSSadaf Ebrahimi 1: a 7839*22dc650dSSadaf Ebrahimi 7840*22dc650dSSadaf Ebrahimi/\A.*?(?:a|bc)++/ 7841*22dc650dSSadaf Ebrahimi ba 7842*22dc650dSSadaf Ebrahimi 0: ba 7843*22dc650dSSadaf Ebrahimi 7844*22dc650dSSadaf Ebrahimi/\A.*?(a|bc)++/ 7845*22dc650dSSadaf Ebrahimi ba 7846*22dc650dSSadaf Ebrahimi 0: ba 7847*22dc650dSSadaf Ebrahimi 1: a 7848*22dc650dSSadaf Ebrahimi 7849*22dc650dSSadaf Ebrahimi/\A.*?(?:a|bc|d)/ 7850*22dc650dSSadaf Ebrahimi ba 7851*22dc650dSSadaf Ebrahimi 0: ba 7852*22dc650dSSadaf Ebrahimi 7853*22dc650dSSadaf Ebrahimi/(?:(b))++/ 7854*22dc650dSSadaf Ebrahimi beetle 7855*22dc650dSSadaf Ebrahimi 0: b 7856*22dc650dSSadaf Ebrahimi 1: b 7857*22dc650dSSadaf Ebrahimi 7858*22dc650dSSadaf Ebrahimi/(?(?=(a(*ACCEPT)z))a)/ 7859*22dc650dSSadaf Ebrahimi a 7860*22dc650dSSadaf Ebrahimi 0: a 7861*22dc650dSSadaf Ebrahimi 1: a 7862*22dc650dSSadaf Ebrahimi 7863*22dc650dSSadaf Ebrahimi/^(a)(?1)+ab/ 7864*22dc650dSSadaf Ebrahimi aaaab 7865*22dc650dSSadaf Ebrahimi 0: aaaab 7866*22dc650dSSadaf Ebrahimi 1: a 7867*22dc650dSSadaf Ebrahimi 7868*22dc650dSSadaf Ebrahimi/^(a)(?1)++ab/ 7869*22dc650dSSadaf Ebrahimi\= Expect no match 7870*22dc650dSSadaf Ebrahimi aaaab 7871*22dc650dSSadaf EbrahimiNo match 7872*22dc650dSSadaf Ebrahimi 7873*22dc650dSSadaf Ebrahimi/^(?=a(*:M))aZ/mark 7874*22dc650dSSadaf Ebrahimi aZbc 7875*22dc650dSSadaf Ebrahimi 0: aZ 7876*22dc650dSSadaf EbrahimiMK: M 7877*22dc650dSSadaf Ebrahimi 7878*22dc650dSSadaf Ebrahimi/^(?!(*:M)b)aZ/mark 7879*22dc650dSSadaf Ebrahimi aZbc 7880*22dc650dSSadaf Ebrahimi 0: aZ 7881*22dc650dSSadaf Ebrahimi 7882*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a))?b(?1)/ 7883*22dc650dSSadaf Ebrahimi backgammon 7884*22dc650dSSadaf Ebrahimi 0: ba 7885*22dc650dSSadaf Ebrahimi 7886*22dc650dSSadaf Ebrahimi/^\N+/ 7887*22dc650dSSadaf Ebrahimi abc\ndef 7888*22dc650dSSadaf Ebrahimi 0: abc 7889*22dc650dSSadaf Ebrahimi 7890*22dc650dSSadaf Ebrahimi/^\N{1,}/ 7891*22dc650dSSadaf Ebrahimi abc\ndef 7892*22dc650dSSadaf Ebrahimi 0: abc 7893*22dc650dSSadaf Ebrahimi 7894*22dc650dSSadaf Ebrahimi/(?(R)a+|(?R)b)/ 7895*22dc650dSSadaf Ebrahimi aaaabcde 7896*22dc650dSSadaf Ebrahimi 0: aaaab 7897*22dc650dSSadaf Ebrahimi 7898*22dc650dSSadaf Ebrahimi/(?(R)a+|((?R))b)/ 7899*22dc650dSSadaf Ebrahimi aaaabcde 7900*22dc650dSSadaf Ebrahimi 0: aaaab 7901*22dc650dSSadaf Ebrahimi 1: aaaa 7902*22dc650dSSadaf Ebrahimi 7903*22dc650dSSadaf Ebrahimi/((?(R)a+|(?1)b))/ 7904*22dc650dSSadaf Ebrahimi aaaabcde 7905*22dc650dSSadaf Ebrahimi 0: aaaab 7906*22dc650dSSadaf Ebrahimi 1: aaaab 7907*22dc650dSSadaf Ebrahimi 7908*22dc650dSSadaf Ebrahimi/((?(R1)a+|(?1)b))/ 7909*22dc650dSSadaf Ebrahimi aaaabcde 7910*22dc650dSSadaf Ebrahimi 0: aaaab 7911*22dc650dSSadaf Ebrahimi 1: aaaab 7912*22dc650dSSadaf Ebrahimi 7913*22dc650dSSadaf Ebrahimi/((?(R)a|(?1)))*/ 7914*22dc650dSSadaf Ebrahimi aaa 7915*22dc650dSSadaf Ebrahimi 0: aaa 7916*22dc650dSSadaf Ebrahimi 1: a 7917*22dc650dSSadaf Ebrahimi 7918*22dc650dSSadaf Ebrahimi/((?(R)a|(?1)))+/ 7919*22dc650dSSadaf Ebrahimi aaa 7920*22dc650dSSadaf Ebrahimi 0: aaa 7921*22dc650dSSadaf Ebrahimi 1: a 7922*22dc650dSSadaf Ebrahimi 7923*22dc650dSSadaf Ebrahimi/a(*:any 7924*22dc650dSSadaf Ebrahiminame)/mark 7925*22dc650dSSadaf Ebrahimi abc 7926*22dc650dSSadaf Ebrahimi 0: a 7927*22dc650dSSadaf EbrahimiMK: any \x0aname 7928*22dc650dSSadaf Ebrahimi 7929*22dc650dSSadaf Ebrahimi/(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/ 7930*22dc650dSSadaf Ebrahimi a 7931*22dc650dSSadaf Ebrahimi 0: a 7932*22dc650dSSadaf Ebrahimi ba 7933*22dc650dSSadaf Ebrahimi 0: a 7934*22dc650dSSadaf Ebrahimi bba 7935*22dc650dSSadaf Ebrahimi 0: a 7936*22dc650dSSadaf Ebrahimi 7937*22dc650dSSadaf Ebrahimi# Checking revised (*THEN) handling. 7938*22dc650dSSadaf Ebrahimi 7939*22dc650dSSadaf Ebrahimi# Capture 7940*22dc650dSSadaf Ebrahimi 7941*22dc650dSSadaf Ebrahimi/^.*? (a(*THEN)b) c/x 7942*22dc650dSSadaf Ebrahimi\= Expect no match 7943*22dc650dSSadaf Ebrahimi aabc 7944*22dc650dSSadaf EbrahimiNo match 7945*22dc650dSSadaf Ebrahimi 7946*22dc650dSSadaf Ebrahimi/^.*? (a(*THEN)b|(*F)) c/x 7947*22dc650dSSadaf Ebrahimi aabc 7948*22dc650dSSadaf Ebrahimi 0: aabc 7949*22dc650dSSadaf Ebrahimi 1: ab 7950*22dc650dSSadaf Ebrahimi 7951*22dc650dSSadaf Ebrahimi/^.*? ( (a(*THEN)b) | (*F) ) c/x 7952*22dc650dSSadaf Ebrahimi aabc 7953*22dc650dSSadaf Ebrahimi 0: aabc 7954*22dc650dSSadaf Ebrahimi 1: ab 7955*22dc650dSSadaf Ebrahimi 2: ab 7956*22dc650dSSadaf Ebrahimi 7957*22dc650dSSadaf Ebrahimi/^.*? ( (a(*THEN)b) ) c/x 7958*22dc650dSSadaf Ebrahimi\= Expect no match 7959*22dc650dSSadaf Ebrahimi aabc 7960*22dc650dSSadaf EbrahimiNo match 7961*22dc650dSSadaf Ebrahimi 7962*22dc650dSSadaf Ebrahimi# Non-capture 7963*22dc650dSSadaf Ebrahimi 7964*22dc650dSSadaf Ebrahimi/^.*? (?:a(*THEN)b) c/x 7965*22dc650dSSadaf Ebrahimi\= Expect no match 7966*22dc650dSSadaf Ebrahimi aabc 7967*22dc650dSSadaf EbrahimiNo match 7968*22dc650dSSadaf Ebrahimi 7969*22dc650dSSadaf Ebrahimi/^.*? (?:a(*THEN)b|(*F)) c/x 7970*22dc650dSSadaf Ebrahimi aabc 7971*22dc650dSSadaf Ebrahimi 0: aabc 7972*22dc650dSSadaf Ebrahimi 7973*22dc650dSSadaf Ebrahimi/^.*? (?: (?:a(*THEN)b) | (*F) ) c/x 7974*22dc650dSSadaf Ebrahimi aabc 7975*22dc650dSSadaf Ebrahimi 0: aabc 7976*22dc650dSSadaf Ebrahimi 7977*22dc650dSSadaf Ebrahimi/^.*? (?: (?:a(*THEN)b) ) c/x 7978*22dc650dSSadaf Ebrahimi\= Expect no match 7979*22dc650dSSadaf Ebrahimi aabc 7980*22dc650dSSadaf EbrahimiNo match 7981*22dc650dSSadaf Ebrahimi 7982*22dc650dSSadaf Ebrahimi# Atomic 7983*22dc650dSSadaf Ebrahimi 7984*22dc650dSSadaf Ebrahimi/^.*? (?>a(*THEN)b) c/x 7985*22dc650dSSadaf Ebrahimi\= Expect no match 7986*22dc650dSSadaf Ebrahimi aabc 7987*22dc650dSSadaf EbrahimiNo match 7988*22dc650dSSadaf Ebrahimi 7989*22dc650dSSadaf Ebrahimi/^.*? (?>a(*THEN)b|(*F)) c/x 7990*22dc650dSSadaf Ebrahimi aabc 7991*22dc650dSSadaf Ebrahimi 0: aabc 7992*22dc650dSSadaf Ebrahimi 7993*22dc650dSSadaf Ebrahimi/^.*? (?> (?>a(*THEN)b) | (*F) ) c/x 7994*22dc650dSSadaf Ebrahimi aabc 7995*22dc650dSSadaf Ebrahimi 0: aabc 7996*22dc650dSSadaf Ebrahimi 7997*22dc650dSSadaf Ebrahimi/^.*? (?> (?>a(*THEN)b) ) c/x 7998*22dc650dSSadaf Ebrahimi\= Expect no match 7999*22dc650dSSadaf Ebrahimi aabc 8000*22dc650dSSadaf EbrahimiNo match 8001*22dc650dSSadaf Ebrahimi 8002*22dc650dSSadaf Ebrahimi# Possessive capture 8003*22dc650dSSadaf Ebrahimi 8004*22dc650dSSadaf Ebrahimi/^.*? (a(*THEN)b)++ c/x 8005*22dc650dSSadaf Ebrahimi\= Expect no match 8006*22dc650dSSadaf Ebrahimi aabc 8007*22dc650dSSadaf EbrahimiNo match 8008*22dc650dSSadaf Ebrahimi 8009*22dc650dSSadaf Ebrahimi/^.*? (a(*THEN)b|(*F))++ c/x 8010*22dc650dSSadaf Ebrahimi aabc 8011*22dc650dSSadaf Ebrahimi 0: aabc 8012*22dc650dSSadaf Ebrahimi 1: ab 8013*22dc650dSSadaf Ebrahimi 8014*22dc650dSSadaf Ebrahimi/^.*? ( (a(*THEN)b)++ | (*F) )++ c/x 8015*22dc650dSSadaf Ebrahimi aabc 8016*22dc650dSSadaf Ebrahimi 0: aabc 8017*22dc650dSSadaf Ebrahimi 1: ab 8018*22dc650dSSadaf Ebrahimi 2: ab 8019*22dc650dSSadaf Ebrahimi 8020*22dc650dSSadaf Ebrahimi/^.*? ( (a(*THEN)b)++ )++ c/x 8021*22dc650dSSadaf Ebrahimi\= Expect no match 8022*22dc650dSSadaf Ebrahimi aabc 8023*22dc650dSSadaf EbrahimiNo match 8024*22dc650dSSadaf Ebrahimi 8025*22dc650dSSadaf Ebrahimi# Possessive non-capture 8026*22dc650dSSadaf Ebrahimi 8027*22dc650dSSadaf Ebrahimi/^.*? (?:a(*THEN)b)++ c/x 8028*22dc650dSSadaf Ebrahimi\= Expect no match 8029*22dc650dSSadaf Ebrahimi aabc 8030*22dc650dSSadaf EbrahimiNo match 8031*22dc650dSSadaf Ebrahimi 8032*22dc650dSSadaf Ebrahimi/^.*? (?:a(*THEN)b|(*F))++ c/x 8033*22dc650dSSadaf Ebrahimi aabc 8034*22dc650dSSadaf Ebrahimi 0: aabc 8035*22dc650dSSadaf Ebrahimi 8036*22dc650dSSadaf Ebrahimi/^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x 8037*22dc650dSSadaf Ebrahimi aabc 8038*22dc650dSSadaf Ebrahimi 0: aabc 8039*22dc650dSSadaf Ebrahimi 8040*22dc650dSSadaf Ebrahimi/^.*? (?: (?:a(*THEN)b)++ )++ c/x 8041*22dc650dSSadaf Ebrahimi\= Expect no match 8042*22dc650dSSadaf Ebrahimi aabc 8043*22dc650dSSadaf EbrahimiNo match 8044*22dc650dSSadaf Ebrahimi 8045*22dc650dSSadaf Ebrahimi# Condition assertion 8046*22dc650dSSadaf Ebrahimi 8047*22dc650dSSadaf Ebrahimi/^(?(?=a(*THEN)b)ab|ac)/ 8048*22dc650dSSadaf Ebrahimi ac 8049*22dc650dSSadaf Ebrahimi 0: ac 8050*22dc650dSSadaf Ebrahimi 8051*22dc650dSSadaf Ebrahimi# Condition 8052*22dc650dSSadaf Ebrahimi 8053*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a|b(*THEN)c)/ 8054*22dc650dSSadaf Ebrahimi\= Expect no match 8055*22dc650dSSadaf Ebrahimi ba 8056*22dc650dSSadaf EbrahimiNo match 8057*22dc650dSSadaf Ebrahimi 8058*22dc650dSSadaf Ebrahimi/^.*?(?:(?(?=a)a|b(*THEN)c)|d)/ 8059*22dc650dSSadaf Ebrahimi ba 8060*22dc650dSSadaf Ebrahimi 0: ba 8061*22dc650dSSadaf Ebrahimi 8062*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a(*THEN)b|c)/ 8063*22dc650dSSadaf Ebrahimi\= Expect no match 8064*22dc650dSSadaf Ebrahimi ac 8065*22dc650dSSadaf EbrahimiNo match 8066*22dc650dSSadaf Ebrahimi 8067*22dc650dSSadaf Ebrahimi# Assertion 8068*22dc650dSSadaf Ebrahimi 8069*22dc650dSSadaf Ebrahimi/^.*(?=a(*THEN)b)/ 8070*22dc650dSSadaf Ebrahimi aabc 8071*22dc650dSSadaf Ebrahimi 0: a 8072*22dc650dSSadaf Ebrahimi 8073*22dc650dSSadaf Ebrahimi# -------------------------- 8074*22dc650dSSadaf Ebrahimi 8075*22dc650dSSadaf Ebrahimi/(?>a(*:m))/imsx,mark 8076*22dc650dSSadaf Ebrahimi a 8077*22dc650dSSadaf Ebrahimi 0: a 8078*22dc650dSSadaf EbrahimiMK: m 8079*22dc650dSSadaf Ebrahimi 8080*22dc650dSSadaf Ebrahimi/(?>(a)(*:m))/imsx,mark 8081*22dc650dSSadaf Ebrahimi a 8082*22dc650dSSadaf Ebrahimi 0: a 8083*22dc650dSSadaf Ebrahimi 1: a 8084*22dc650dSSadaf EbrahimiMK: m 8085*22dc650dSSadaf Ebrahimi 8086*22dc650dSSadaf Ebrahimi/(?<=a(*ACCEPT)b)c/ 8087*22dc650dSSadaf Ebrahimi xacd 8088*22dc650dSSadaf Ebrahimi 0: c 8089*22dc650dSSadaf Ebrahimi 8090*22dc650dSSadaf Ebrahimi/(?<=(a(*ACCEPT)b))c/ 8091*22dc650dSSadaf Ebrahimi xacd 8092*22dc650dSSadaf Ebrahimi 0: c 8093*22dc650dSSadaf Ebrahimi 1: a 8094*22dc650dSSadaf Ebrahimi 8095*22dc650dSSadaf Ebrahimi/(?<=(a(*COMMIT)b))c/ 8096*22dc650dSSadaf Ebrahimi xabcd 8097*22dc650dSSadaf Ebrahimi 0: c 8098*22dc650dSSadaf Ebrahimi 1: ab 8099*22dc650dSSadaf Ebrahimi\= Expect no match 8100*22dc650dSSadaf Ebrahimi xacd 8101*22dc650dSSadaf EbrahimiNo match 8102*22dc650dSSadaf Ebrahimi 8103*22dc650dSSadaf Ebrahimi/(?<!a(*FAIL)b)c/ 8104*22dc650dSSadaf Ebrahimi xcd 8105*22dc650dSSadaf Ebrahimi 0: c 8106*22dc650dSSadaf Ebrahimi acd 8107*22dc650dSSadaf Ebrahimi 0: c 8108*22dc650dSSadaf Ebrahimi 8109*22dc650dSSadaf Ebrahimi/(?<=a(*:N)b)c/mark 8110*22dc650dSSadaf Ebrahimi xabcd 8111*22dc650dSSadaf Ebrahimi 0: c 8112*22dc650dSSadaf EbrahimiMK: N 8113*22dc650dSSadaf Ebrahimi 8114*22dc650dSSadaf Ebrahimi/(?<=a(*PRUNE)b)c/ 8115*22dc650dSSadaf Ebrahimi xabcd 8116*22dc650dSSadaf Ebrahimi 0: c 8117*22dc650dSSadaf Ebrahimi 8118*22dc650dSSadaf Ebrahimi/(?<=a(*SKIP)b)c/ 8119*22dc650dSSadaf Ebrahimi xabcd 8120*22dc650dSSadaf Ebrahimi 0: c 8121*22dc650dSSadaf Ebrahimi 8122*22dc650dSSadaf Ebrahimi/(?<=a(*THEN)b)c/ 8123*22dc650dSSadaf Ebrahimi xabcd 8124*22dc650dSSadaf Ebrahimi 0: c 8125*22dc650dSSadaf Ebrahimi 8126*22dc650dSSadaf Ebrahimi/(a)(?2){2}(.)/ 8127*22dc650dSSadaf Ebrahimi abcd 8128*22dc650dSSadaf Ebrahimi 0: abcd 8129*22dc650dSSadaf Ebrahimi 1: a 8130*22dc650dSSadaf Ebrahimi 2: d 8131*22dc650dSSadaf Ebrahimi 8132*22dc650dSSadaf Ebrahimi/(*MARK:A)(*PRUNE:B)(C|X)/mark 8133*22dc650dSSadaf Ebrahimi C 8134*22dc650dSSadaf Ebrahimi 0: C 8135*22dc650dSSadaf Ebrahimi 1: C 8136*22dc650dSSadaf EbrahimiMK: B 8137*22dc650dSSadaf Ebrahimi\= Expect no match 8138*22dc650dSSadaf Ebrahimi D 8139*22dc650dSSadaf EbrahimiNo match, mark = B 8140*22dc650dSSadaf Ebrahimi 8141*22dc650dSSadaf Ebrahimi/(*MARK:A)(*PRUNE:B)(C|X)/mark 8142*22dc650dSSadaf Ebrahimi C 8143*22dc650dSSadaf Ebrahimi 0: C 8144*22dc650dSSadaf Ebrahimi 1: C 8145*22dc650dSSadaf EbrahimiMK: B 8146*22dc650dSSadaf Ebrahimi\= Expect no match 8147*22dc650dSSadaf Ebrahimi D 8148*22dc650dSSadaf EbrahimiNo match, mark = B 8149*22dc650dSSadaf Ebrahimi 8150*22dc650dSSadaf Ebrahimi/(*MARK:A)(*THEN:B)(C|X)/mark 8151*22dc650dSSadaf Ebrahimi C 8152*22dc650dSSadaf Ebrahimi 0: C 8153*22dc650dSSadaf Ebrahimi 1: C 8154*22dc650dSSadaf EbrahimiMK: B 8155*22dc650dSSadaf Ebrahimi\= Expect no match 8156*22dc650dSSadaf Ebrahimi D 8157*22dc650dSSadaf EbrahimiNo match, mark = B 8158*22dc650dSSadaf Ebrahimi 8159*22dc650dSSadaf Ebrahimi/(*MARK:A)(*THEN:B)(C|X)/mark,no_start_optimize 8160*22dc650dSSadaf Ebrahimi C 8161*22dc650dSSadaf Ebrahimi 0: C 8162*22dc650dSSadaf Ebrahimi 1: C 8163*22dc650dSSadaf EbrahimiMK: B 8164*22dc650dSSadaf Ebrahimi\= Expect no match 8165*22dc650dSSadaf Ebrahimi D 8166*22dc650dSSadaf EbrahimiNo match, mark = B 8167*22dc650dSSadaf Ebrahimi 8168*22dc650dSSadaf Ebrahimi/(*MARK:A)(*THEN:B)(C|X)/mark 8169*22dc650dSSadaf Ebrahimi C 8170*22dc650dSSadaf Ebrahimi 0: C 8171*22dc650dSSadaf Ebrahimi 1: C 8172*22dc650dSSadaf EbrahimiMK: B 8173*22dc650dSSadaf Ebrahimi\= Expect no match 8174*22dc650dSSadaf Ebrahimi D 8175*22dc650dSSadaf EbrahimiNo match, mark = B 8176*22dc650dSSadaf Ebrahimi 8177*22dc650dSSadaf Ebrahimi# This should fail, as the skip causes a bump to offset 3 (the skip). 8178*22dc650dSSadaf Ebrahimi 8179*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP)(B|Z) | AC/x,mark 8180*22dc650dSSadaf Ebrahimi\= Expect no match 8181*22dc650dSSadaf Ebrahimi AAAC 8182*22dc650dSSadaf EbrahimiNo match, mark = A 8183*22dc650dSSadaf Ebrahimi 8184*22dc650dSSadaf Ebrahimi# Same 8185*22dc650dSSadaf Ebrahimi 8186*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/x,mark 8187*22dc650dSSadaf Ebrahimi\= Expect no match 8188*22dc650dSSadaf Ebrahimi AAAC 8189*22dc650dSSadaf EbrahimiNo match, mark = B 8190*22dc650dSSadaf Ebrahimi 8191*22dc650dSSadaf Ebrahimi/A(*:A)A+(*SKIP)(B|Z) | AC/x,mark 8192*22dc650dSSadaf Ebrahimi\= Expect no match 8193*22dc650dSSadaf Ebrahimi AAAC 8194*22dc650dSSadaf EbrahimiNo match, mark = A 8195*22dc650dSSadaf Ebrahimi 8196*22dc650dSSadaf Ebrahimi# This should fail, as a null name is the same as no name. 8197*22dc650dSSadaf Ebrahimi 8198*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:)(B|Z) | AC/x,mark 8199*22dc650dSSadaf Ebrahimi\= Expect no match 8200*22dc650dSSadaf Ebrahimi AAAC 8201*22dc650dSSadaf EbrahimiNo match, mark = A 8202*22dc650dSSadaf Ebrahimi 8203*22dc650dSSadaf Ebrahimi# A check on what happens after hitting a mark and them bumping along to 8204*22dc650dSSadaf Ebrahimi# something that does not even start. Perl reports tags after the failures 8205*22dc650dSSadaf Ebrahimi# here, though it does not when the individual letters are made into something 8206*22dc650dSSadaf Ebrahimi# more complicated. 8207*22dc650dSSadaf Ebrahimi 8208*22dc650dSSadaf Ebrahimi/A(*:A)B|XX(*:B)Y/mark 8209*22dc650dSSadaf Ebrahimi AABC 8210*22dc650dSSadaf Ebrahimi 0: AB 8211*22dc650dSSadaf EbrahimiMK: A 8212*22dc650dSSadaf Ebrahimi XXYZ 8213*22dc650dSSadaf Ebrahimi 0: XXY 8214*22dc650dSSadaf EbrahimiMK: B 8215*22dc650dSSadaf Ebrahimi\= Expect no match 8216*22dc650dSSadaf Ebrahimi XAQQ 8217*22dc650dSSadaf EbrahimiNo match, mark = A 8218*22dc650dSSadaf Ebrahimi XAQQXZZ 8219*22dc650dSSadaf EbrahimiNo match, mark = A 8220*22dc650dSSadaf Ebrahimi AXQQQ 8221*22dc650dSSadaf EbrahimiNo match, mark = A 8222*22dc650dSSadaf Ebrahimi AXXQQQ 8223*22dc650dSSadaf EbrahimiNo match, mark = B 8224*22dc650dSSadaf Ebrahimi 8225*22dc650dSSadaf Ebrahimi/^(A(*THEN:A)B|C(*THEN:B)D)/mark 8226*22dc650dSSadaf Ebrahimi AB 8227*22dc650dSSadaf Ebrahimi 0: AB 8228*22dc650dSSadaf Ebrahimi 1: AB 8229*22dc650dSSadaf EbrahimiMK: A 8230*22dc650dSSadaf Ebrahimi CD 8231*22dc650dSSadaf Ebrahimi 0: CD 8232*22dc650dSSadaf Ebrahimi 1: CD 8233*22dc650dSSadaf EbrahimiMK: B 8234*22dc650dSSadaf Ebrahimi\= Expect no match 8235*22dc650dSSadaf Ebrahimi AC 8236*22dc650dSSadaf EbrahimiNo match, mark = A 8237*22dc650dSSadaf Ebrahimi CB 8238*22dc650dSSadaf EbrahimiNo match, mark = B 8239*22dc650dSSadaf Ebrahimi 8240*22dc650dSSadaf Ebrahimi/^(A(*PRUNE:A)B|C(*PRUNE:B)D)/mark 8241*22dc650dSSadaf Ebrahimi AB 8242*22dc650dSSadaf Ebrahimi 0: AB 8243*22dc650dSSadaf Ebrahimi 1: AB 8244*22dc650dSSadaf EbrahimiMK: A 8245*22dc650dSSadaf Ebrahimi CD 8246*22dc650dSSadaf Ebrahimi 0: CD 8247*22dc650dSSadaf Ebrahimi 1: CD 8248*22dc650dSSadaf EbrahimiMK: B 8249*22dc650dSSadaf Ebrahimi\= Expect no match 8250*22dc650dSSadaf Ebrahimi AC 8251*22dc650dSSadaf EbrahimiNo match, mark = A 8252*22dc650dSSadaf Ebrahimi CB 8253*22dc650dSSadaf EbrahimiNo match, mark = B 8254*22dc650dSSadaf Ebrahimi 8255*22dc650dSSadaf Ebrahimi# An empty name does not pass back an empty string. It is the same as if no 8256*22dc650dSSadaf Ebrahimi# name were given. 8257*22dc650dSSadaf Ebrahimi 8258*22dc650dSSadaf Ebrahimi/^(A(*PRUNE:)B|C(*PRUNE:B)D)/mark 8259*22dc650dSSadaf Ebrahimi AB 8260*22dc650dSSadaf Ebrahimi 0: AB 8261*22dc650dSSadaf Ebrahimi 1: AB 8262*22dc650dSSadaf Ebrahimi CD 8263*22dc650dSSadaf Ebrahimi 0: CD 8264*22dc650dSSadaf Ebrahimi 1: CD 8265*22dc650dSSadaf EbrahimiMK: B 8266*22dc650dSSadaf Ebrahimi 8267*22dc650dSSadaf Ebrahimi# PRUNE goes to next bumpalong; COMMIT does not. 8268*22dc650dSSadaf Ebrahimi 8269*22dc650dSSadaf Ebrahimi/A(*PRUNE:A)B/mark 8270*22dc650dSSadaf Ebrahimi ACAB 8271*22dc650dSSadaf Ebrahimi 0: AB 8272*22dc650dSSadaf EbrahimiMK: A 8273*22dc650dSSadaf Ebrahimi 8274*22dc650dSSadaf Ebrahimi# Mark names can be duplicated. 8275*22dc650dSSadaf Ebrahimi 8276*22dc650dSSadaf Ebrahimi/A(*:A)B|X(*:A)Y/mark 8277*22dc650dSSadaf Ebrahimi AABC 8278*22dc650dSSadaf Ebrahimi 0: AB 8279*22dc650dSSadaf EbrahimiMK: A 8280*22dc650dSSadaf Ebrahimi XXYZ 8281*22dc650dSSadaf Ebrahimi 0: XY 8282*22dc650dSSadaf EbrahimiMK: A 8283*22dc650dSSadaf Ebrahimi 8284*22dc650dSSadaf Ebrahimi/b(*:m)f|a(*:n)w/mark 8285*22dc650dSSadaf Ebrahimi aw 8286*22dc650dSSadaf Ebrahimi 0: aw 8287*22dc650dSSadaf EbrahimiMK: n 8288*22dc650dSSadaf Ebrahimi\= Expect no match 8289*22dc650dSSadaf Ebrahimi abc 8290*22dc650dSSadaf EbrahimiNo match, mark = m 8291*22dc650dSSadaf Ebrahimi 8292*22dc650dSSadaf Ebrahimi/b(*:m)f|aw/mark 8293*22dc650dSSadaf Ebrahimi abaw 8294*22dc650dSSadaf Ebrahimi 0: aw 8295*22dc650dSSadaf Ebrahimi\= Expect no match 8296*22dc650dSSadaf Ebrahimi abc 8297*22dc650dSSadaf EbrahimiNo match, mark = m 8298*22dc650dSSadaf Ebrahimi abax 8299*22dc650dSSadaf EbrahimiNo match, mark = m 8300*22dc650dSSadaf Ebrahimi 8301*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/x,mark 8302*22dc650dSSadaf Ebrahimi AAAC 8303*22dc650dSSadaf Ebrahimi 0: AAC 8304*22dc650dSSadaf Ebrahimi 8305*22dc650dSSadaf Ebrahimi/(?=a(*MARK:A)b)..x/mark 8306*22dc650dSSadaf Ebrahimi abxy 8307*22dc650dSSadaf Ebrahimi 0: abx 8308*22dc650dSSadaf EbrahimiMK: A 8309*22dc650dSSadaf Ebrahimi\= Expect no match 8310*22dc650dSSadaf Ebrahimi abpq 8311*22dc650dSSadaf EbrahimiNo match 8312*22dc650dSSadaf Ebrahimi 8313*22dc650dSSadaf Ebrahimi/(?=a(*MARK:A)b)..(*:Y)x/mark 8314*22dc650dSSadaf Ebrahimi abxy 8315*22dc650dSSadaf Ebrahimi 0: abx 8316*22dc650dSSadaf EbrahimiMK: Y 8317*22dc650dSSadaf Ebrahimi\= Expect no match 8318*22dc650dSSadaf Ebrahimi abpq 8319*22dc650dSSadaf EbrahimiNo match 8320*22dc650dSSadaf Ebrahimi 8321*22dc650dSSadaf Ebrahimi/(?=a(*PRUNE:A)b)..x/mark 8322*22dc650dSSadaf Ebrahimi abxy 8323*22dc650dSSadaf Ebrahimi 0: abx 8324*22dc650dSSadaf EbrahimiMK: A 8325*22dc650dSSadaf Ebrahimi\= Expect no match 8326*22dc650dSSadaf Ebrahimi abpq 8327*22dc650dSSadaf EbrahimiNo match 8328*22dc650dSSadaf Ebrahimi 8329*22dc650dSSadaf Ebrahimi/(?=a(*PRUNE:A)b)..(*:Y)x/mark 8330*22dc650dSSadaf Ebrahimi abxy 8331*22dc650dSSadaf Ebrahimi 0: abx 8332*22dc650dSSadaf EbrahimiMK: Y 8333*22dc650dSSadaf Ebrahimi\= Expect no match 8334*22dc650dSSadaf Ebrahimi abpq 8335*22dc650dSSadaf EbrahimiNo match 8336*22dc650dSSadaf Ebrahimi 8337*22dc650dSSadaf Ebrahimi/(?=a(*THEN:A)b)..x/mark 8338*22dc650dSSadaf Ebrahimi abxy 8339*22dc650dSSadaf Ebrahimi 0: abx 8340*22dc650dSSadaf EbrahimiMK: A 8341*22dc650dSSadaf Ebrahimi\= Expect no match 8342*22dc650dSSadaf Ebrahimi abpq 8343*22dc650dSSadaf EbrahimiNo match 8344*22dc650dSSadaf Ebrahimi 8345*22dc650dSSadaf Ebrahimi/(?=a(*THEN:A)b)..(*:Y)x/mark 8346*22dc650dSSadaf Ebrahimi abxy 8347*22dc650dSSadaf Ebrahimi 0: abx 8348*22dc650dSSadaf EbrahimiMK: Y 8349*22dc650dSSadaf Ebrahimi\= Expect no match 8350*22dc650dSSadaf Ebrahimi abpq 8351*22dc650dSSadaf EbrahimiNo match 8352*22dc650dSSadaf Ebrahimi 8353*22dc650dSSadaf Ebrahimi/(another)?(\1?)test/ 8354*22dc650dSSadaf Ebrahimi hello world test 8355*22dc650dSSadaf Ebrahimi 0: test 8356*22dc650dSSadaf Ebrahimi 1: <unset> 8357*22dc650dSSadaf Ebrahimi 2: 8358*22dc650dSSadaf Ebrahimi 8359*22dc650dSSadaf Ebrahimi/(another)?(\1+)test/ 8360*22dc650dSSadaf Ebrahimi\= Expect no match 8361*22dc650dSSadaf Ebrahimi hello world test 8362*22dc650dSSadaf EbrahimiNo match 8363*22dc650dSSadaf Ebrahimi 8364*22dc650dSSadaf Ebrahimi/(a(*COMMIT)b){0}a(?1)|aac/ 8365*22dc650dSSadaf Ebrahimi aac 8366*22dc650dSSadaf Ebrahimi 0: aac 8367*22dc650dSSadaf Ebrahimi 8368*22dc650dSSadaf Ebrahimi/((?:a?)*)*c/ 8369*22dc650dSSadaf Ebrahimi aac 8370*22dc650dSSadaf Ebrahimi 0: aac 8371*22dc650dSSadaf Ebrahimi 1: 8372*22dc650dSSadaf Ebrahimi 8373*22dc650dSSadaf Ebrahimi/((?>a?)*)*c/ 8374*22dc650dSSadaf Ebrahimi aac 8375*22dc650dSSadaf Ebrahimi 0: aac 8376*22dc650dSSadaf Ebrahimi 1: 8377*22dc650dSSadaf Ebrahimi 8378*22dc650dSSadaf Ebrahimi/(?>.*?a)(?<=ba)/ 8379*22dc650dSSadaf Ebrahimi aba 8380*22dc650dSSadaf Ebrahimi 0: ba 8381*22dc650dSSadaf Ebrahimi 8382*22dc650dSSadaf Ebrahimi/(?:.*?a)(?<=ba)/ 8383*22dc650dSSadaf Ebrahimi aba 8384*22dc650dSSadaf Ebrahimi 0: aba 8385*22dc650dSSadaf Ebrahimi 8386*22dc650dSSadaf Ebrahimi/(?>.*?a)b/s 8387*22dc650dSSadaf Ebrahimi aab 8388*22dc650dSSadaf Ebrahimi 0: ab 8389*22dc650dSSadaf Ebrahimi 8390*22dc650dSSadaf Ebrahimi/(?>.*?a)b/ 8391*22dc650dSSadaf Ebrahimi aab 8392*22dc650dSSadaf Ebrahimi 0: ab 8393*22dc650dSSadaf Ebrahimi 8394*22dc650dSSadaf Ebrahimi/(?>^a)b/s 8395*22dc650dSSadaf Ebrahimi\= Expect no match 8396*22dc650dSSadaf Ebrahimi aab 8397*22dc650dSSadaf EbrahimiNo match 8398*22dc650dSSadaf Ebrahimi 8399*22dc650dSSadaf Ebrahimi/(?>.*?)(?<=(abcd)|(wxyz))/ 8400*22dc650dSSadaf Ebrahimi alphabetabcd 8401*22dc650dSSadaf Ebrahimi 0: 8402*22dc650dSSadaf Ebrahimi 1: abcd 8403*22dc650dSSadaf Ebrahimi endingwxyz 8404*22dc650dSSadaf Ebrahimi 0: 8405*22dc650dSSadaf Ebrahimi 1: <unset> 8406*22dc650dSSadaf Ebrahimi 2: wxyz 8407*22dc650dSSadaf Ebrahimi 8408*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd)|(wxyz))/ 8409*22dc650dSSadaf Ebrahimi alphabetabcd 8410*22dc650dSSadaf Ebrahimi 0: alphabetabcd 8411*22dc650dSSadaf Ebrahimi 1: abcd 8412*22dc650dSSadaf Ebrahimi endingwxyz 8413*22dc650dSSadaf Ebrahimi 0: endingwxyz 8414*22dc650dSSadaf Ebrahimi 1: <unset> 8415*22dc650dSSadaf Ebrahimi 2: wxyz 8416*22dc650dSSadaf Ebrahimi 8417*22dc650dSSadaf Ebrahimi/(?>.*)foo/ 8418*22dc650dSSadaf Ebrahimi\= Expect no match 8419*22dc650dSSadaf Ebrahimi abcdfooxyz 8420*22dc650dSSadaf EbrahimiNo match 8421*22dc650dSSadaf Ebrahimi 8422*22dc650dSSadaf Ebrahimi/(?>.*?)foo/ 8423*22dc650dSSadaf Ebrahimi abcdfooxyz 8424*22dc650dSSadaf Ebrahimi 0: foo 8425*22dc650dSSadaf Ebrahimi 8426*22dc650dSSadaf Ebrahimi/(?:(a(*PRUNE)b)){0}(?:(?1)|ac)/ 8427*22dc650dSSadaf Ebrahimi ac 8428*22dc650dSSadaf Ebrahimi 0: ac 8429*22dc650dSSadaf Ebrahimi 8430*22dc650dSSadaf Ebrahimi/(?:(a(*SKIP)b)){0}(?:(?1)|ac)/ 8431*22dc650dSSadaf Ebrahimi ac 8432*22dc650dSSadaf Ebrahimi 0: ac 8433*22dc650dSSadaf Ebrahimi 8434*22dc650dSSadaf Ebrahimi/(?<=(*SKIP)ac)a/ 8435*22dc650dSSadaf Ebrahimi\= Expect no match 8436*22dc650dSSadaf Ebrahimi aa 8437*22dc650dSSadaf EbrahimiNo match 8438*22dc650dSSadaf Ebrahimi 8439*22dc650dSSadaf Ebrahimi/A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/x,mark 8440*22dc650dSSadaf Ebrahimi AAAC 8441*22dc650dSSadaf Ebrahimi 0: AC 8442*22dc650dSSadaf Ebrahimi 8443*22dc650dSSadaf Ebrahimi/a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/mark 8444*22dc650dSSadaf Ebrahimi acacd 8445*22dc650dSSadaf Ebrahimi 0: acd 8446*22dc650dSSadaf EbrahimiMK: n 8447*22dc650dSSadaf Ebrahimi 8448*22dc650dSSadaf Ebrahimi/A(*SKIP:m)x|A(*SKIP:n)x|AB/mark 8449*22dc650dSSadaf Ebrahimi AB 8450*22dc650dSSadaf Ebrahimi 0: AB 8451*22dc650dSSadaf Ebrahimi 8452*22dc650dSSadaf Ebrahimi/((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/mark 8453*22dc650dSSadaf Ebrahimi acacd 8454*22dc650dSSadaf Ebrahimi 0: ac 8455*22dc650dSSadaf EbrahimiMK: n 8456*22dc650dSSadaf Ebrahimi 8457*22dc650dSSadaf Ebrahimi# Tests that try to figure out how Perl works. My hypothesis is that the first 8458*22dc650dSSadaf Ebrahimi# verb that is backtracked onto is the one that acts. This seems to be the case 8459*22dc650dSSadaf Ebrahimi# almost all the time, but there is one exception that is perhaps a bug. 8460*22dc650dSSadaf Ebrahimi 8461*22dc650dSSadaf Ebrahimi# This matches "aaaac"; each PRUNE advances one character until the subject no 8462*22dc650dSSadaf Ebrahimi# longer starts with 5 'a's. 8463*22dc650dSSadaf Ebrahimi 8464*22dc650dSSadaf Ebrahimi/aaaaa(*PRUNE)b|a+c/ 8465*22dc650dSSadaf Ebrahimi aaaaaac 8466*22dc650dSSadaf Ebrahimi 0: aaaac 8467*22dc650dSSadaf Ebrahimi 8468*22dc650dSSadaf Ebrahimi# Putting SKIP in front of PRUNE makes no difference, as it is never 8469*22dc650dSSadaf Ebrahimi# backtracked onto, whether or not it has a label. 8470*22dc650dSSadaf Ebrahimi 8471*22dc650dSSadaf Ebrahimi/aaaaa(*SKIP)(*PRUNE)b|a+c/ 8472*22dc650dSSadaf Ebrahimi aaaaaac 8473*22dc650dSSadaf Ebrahimi 0: aaaac 8474*22dc650dSSadaf Ebrahimi 8475*22dc650dSSadaf Ebrahimi/aaaaa(*SKIP:N)(*PRUNE)b|a+c/ 8476*22dc650dSSadaf Ebrahimi aaaaaac 8477*22dc650dSSadaf Ebrahimi 0: aaaac 8478*22dc650dSSadaf Ebrahimi 8479*22dc650dSSadaf Ebrahimi/aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/ 8480*22dc650dSSadaf Ebrahimi aaaaaac 8481*22dc650dSSadaf Ebrahimi 0: aaaac 8482*22dc650dSSadaf Ebrahimi 8483*22dc650dSSadaf Ebrahimi# Putting THEN in front makes no difference. 8484*22dc650dSSadaf Ebrahimi 8485*22dc650dSSadaf Ebrahimi/aaaaa(*THEN)(*PRUNE)b|a+c/ 8486*22dc650dSSadaf Ebrahimi aaaaaac 8487*22dc650dSSadaf Ebrahimi 0: aaaac 8488*22dc650dSSadaf Ebrahimi 8489*22dc650dSSadaf Ebrahimi# However, putting COMMIT in front of the prune changes it to "no match". I 8490*22dc650dSSadaf Ebrahimi# think this is inconsistent and possibly a bug. For the moment, running this 8491*22dc650dSSadaf Ebrahimi# test is moved out of the Perl-compatible file. 8492*22dc650dSSadaf Ebrahimi 8493*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 8494*22dc650dSSadaf Ebrahimi 8495*22dc650dSSadaf Ebrahimi# OK, lets play the same game again using SKIP instead of PRUNE. 8496*22dc650dSSadaf Ebrahimi 8497*22dc650dSSadaf Ebrahimi# This matches "ac" because SKIP forces the next match to start on the 8498*22dc650dSSadaf Ebrahimi# sixth "a". 8499*22dc650dSSadaf Ebrahimi 8500*22dc650dSSadaf Ebrahimi/aaaaa(*SKIP)b|a+c/ 8501*22dc650dSSadaf Ebrahimi aaaaaac 8502*22dc650dSSadaf Ebrahimi 0: ac 8503*22dc650dSSadaf Ebrahimi 8504*22dc650dSSadaf Ebrahimi# Putting PRUNE in front makes no difference. 8505*22dc650dSSadaf Ebrahimi 8506*22dc650dSSadaf Ebrahimi/aaaaa(*PRUNE)(*SKIP)b|a+c/ 8507*22dc650dSSadaf Ebrahimi aaaaaac 8508*22dc650dSSadaf Ebrahimi 0: ac 8509*22dc650dSSadaf Ebrahimi 8510*22dc650dSSadaf Ebrahimi# Putting THEN in front makes no difference. 8511*22dc650dSSadaf Ebrahimi 8512*22dc650dSSadaf Ebrahimi/aaaaa(*THEN)(*SKIP)b|a+c/ 8513*22dc650dSSadaf Ebrahimi aaaaaac 8514*22dc650dSSadaf Ebrahimi 0: ac 8515*22dc650dSSadaf Ebrahimi 8516*22dc650dSSadaf Ebrahimi# In this case, neither does COMMIT. This still matches "ac". 8517*22dc650dSSadaf Ebrahimi 8518*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)(*SKIP)b|a+c/ 8519*22dc650dSSadaf Ebrahimi aaaaaac 8520*22dc650dSSadaf Ebrahimi 0: ac 8521*22dc650dSSadaf Ebrahimi 8522*22dc650dSSadaf Ebrahimi# This gives "no match", as expected. 8523*22dc650dSSadaf Ebrahimi 8524*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)b|a+c/ 8525*22dc650dSSadaf Ebrahimi\= Expect no match 8526*22dc650dSSadaf Ebrahimi aaaaaac 8527*22dc650dSSadaf EbrahimiNo match 8528*22dc650dSSadaf Ebrahimi 8529*22dc650dSSadaf Ebrahimi# ---- Tests using THEN ---- 8530*22dc650dSSadaf Ebrahimi 8531*22dc650dSSadaf Ebrahimi# This matches "aaaaaac", as expected. 8532*22dc650dSSadaf Ebrahimi 8533*22dc650dSSadaf Ebrahimi/aaaaa(*THEN)b|a+c/ 8534*22dc650dSSadaf Ebrahimi aaaaaac 8535*22dc650dSSadaf Ebrahimi 0: aaaaaac 8536*22dc650dSSadaf Ebrahimi 8537*22dc650dSSadaf Ebrahimi# Putting SKIP in front makes no difference. 8538*22dc650dSSadaf Ebrahimi 8539*22dc650dSSadaf Ebrahimi/aaaaa(*SKIP)(*THEN)b|a+c/ 8540*22dc650dSSadaf Ebrahimi aaaaaac 8541*22dc650dSSadaf Ebrahimi 0: aaaaaac 8542*22dc650dSSadaf Ebrahimi 8543*22dc650dSSadaf Ebrahimi# Putting PRUNE in front makes no difference. 8544*22dc650dSSadaf Ebrahimi 8545*22dc650dSSadaf Ebrahimi/aaaaa(*PRUNE)(*THEN)b|a+c/ 8546*22dc650dSSadaf Ebrahimi aaaaaac 8547*22dc650dSSadaf Ebrahimi 0: aaaaaac 8548*22dc650dSSadaf Ebrahimi 8549*22dc650dSSadaf Ebrahimi# Putting COMMIT in front makes no difference. 8550*22dc650dSSadaf Ebrahimi 8551*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)(*THEN)b|a+c/ 8552*22dc650dSSadaf Ebrahimi aaaaaac 8553*22dc650dSSadaf Ebrahimi 0: aaaaaac 8554*22dc650dSSadaf Ebrahimi 8555*22dc650dSSadaf Ebrahimi# End of "priority" tests 8556*22dc650dSSadaf Ebrahimi 8557*22dc650dSSadaf Ebrahimi/aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/ 8558*22dc650dSSadaf Ebrahimi aaaaaa 8559*22dc650dSSadaf Ebrahimi 0: a 8560*22dc650dSSadaf Ebrahimi 8561*22dc650dSSadaf Ebrahimi/aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/ 8562*22dc650dSSadaf Ebrahimi aaaaaa 8563*22dc650dSSadaf Ebrahimi 0: a 8564*22dc650dSSadaf Ebrahimi 8565*22dc650dSSadaf Ebrahimi/aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/ 8566*22dc650dSSadaf Ebrahimi aaaaaa 8567*22dc650dSSadaf Ebrahimi 0: aaaa 8568*22dc650dSSadaf Ebrahimi 8569*22dc650dSSadaf Ebrahimi/aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/ 8570*22dc650dSSadaf Ebrahimi aaaaaa 8571*22dc650dSSadaf Ebrahimi 0: a 8572*22dc650dSSadaf Ebrahimi 8573*22dc650dSSadaf Ebrahimi/a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/ 8574*22dc650dSSadaf Ebrahimi aaaac 8575*22dc650dSSadaf Ebrahimi 0: aac 8576*22dc650dSSadaf Ebrahimi 8577*22dc650dSSadaf Ebrahimi/a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/ 8578*22dc650dSSadaf Ebrahimi aaaac 8579*22dc650dSSadaf Ebrahimi 0: ac 8580*22dc650dSSadaf Ebrahimi 8581*22dc650dSSadaf Ebrahimi/aaa(*PRUNE:A)a(*SKIP:A)b|a+c/ 8582*22dc650dSSadaf Ebrahimi aaaac 8583*22dc650dSSadaf Ebrahimi 0: aac 8584*22dc650dSSadaf Ebrahimi 8585*22dc650dSSadaf Ebrahimi/aaa(*MARK:A)a(*SKIP:A)b|a+c/ 8586*22dc650dSSadaf Ebrahimi aaaac 8587*22dc650dSSadaf Ebrahimi 0: ac 8588*22dc650dSSadaf Ebrahimi 8589*22dc650dSSadaf Ebrahimi/a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/mark 8590*22dc650dSSadaf Ebrahimi aaaaaac 8591*22dc650dSSadaf Ebrahimi 0: ac 8592*22dc650dSSadaf Ebrahimi 8593*22dc650dSSadaf Ebrahimi/.?(a|b(*THEN)c)/ 8594*22dc650dSSadaf Ebrahimi ba 8595*22dc650dSSadaf Ebrahimi 0: ba 8596*22dc650dSSadaf Ebrahimi 1: a 8597*22dc650dSSadaf Ebrahimi 8598*22dc650dSSadaf Ebrahimi/(a(*COMMIT)b)c|abd/ 8599*22dc650dSSadaf Ebrahimi abc 8600*22dc650dSSadaf Ebrahimi 0: abc 8601*22dc650dSSadaf Ebrahimi 1: ab 8602*22dc650dSSadaf Ebrahimi\= Expect no match 8603*22dc650dSSadaf Ebrahimi abd 8604*22dc650dSSadaf EbrahimiNo match 8605*22dc650dSSadaf Ebrahimi 8606*22dc650dSSadaf Ebrahimi/(?=a(*COMMIT)b)abc|abd/ 8607*22dc650dSSadaf Ebrahimi abc 8608*22dc650dSSadaf Ebrahimi 0: abc 8609*22dc650dSSadaf Ebrahimi abd 8610*22dc650dSSadaf Ebrahimi 0: abd 8611*22dc650dSSadaf Ebrahimi 8612*22dc650dSSadaf Ebrahimi/(?>a(*COMMIT)b)c|abd/ 8613*22dc650dSSadaf Ebrahimi abc 8614*22dc650dSSadaf Ebrahimi 0: abc 8615*22dc650dSSadaf Ebrahimi abd 8616*22dc650dSSadaf Ebrahimi 0: abd 8617*22dc650dSSadaf Ebrahimi 8618*22dc650dSSadaf Ebrahimi/a(?=b(*COMMIT)c)[^d]|abd/ 8619*22dc650dSSadaf Ebrahimi abc 8620*22dc650dSSadaf Ebrahimi 0: ab 8621*22dc650dSSadaf Ebrahimi\= Expect no match 8622*22dc650dSSadaf Ebrahimi abd 8623*22dc650dSSadaf EbrahimiNo match 8624*22dc650dSSadaf Ebrahimi 8625*22dc650dSSadaf Ebrahimi/a(?=bc).|abd/ 8626*22dc650dSSadaf Ebrahimi abd 8627*22dc650dSSadaf Ebrahimi 0: abd 8628*22dc650dSSadaf Ebrahimi abc 8629*22dc650dSSadaf Ebrahimi 0: ab 8630*22dc650dSSadaf Ebrahimi 8631*22dc650dSSadaf Ebrahimi/a(?>b(*COMMIT)c)d|abd/ 8632*22dc650dSSadaf Ebrahimi\= Expect no match 8633*22dc650dSSadaf Ebrahimi abceabd 8634*22dc650dSSadaf EbrahimiNo match 8635*22dc650dSSadaf Ebrahimi 8636*22dc650dSSadaf Ebrahimi/a(?>bc)d|abd/ 8637*22dc650dSSadaf Ebrahimi abceabd 8638*22dc650dSSadaf Ebrahimi 0: abd 8639*22dc650dSSadaf Ebrahimi 8640*22dc650dSSadaf Ebrahimi/(?>a(*COMMIT)b)c|abd/ 8641*22dc650dSSadaf Ebrahimi abd 8642*22dc650dSSadaf Ebrahimi 0: abd 8643*22dc650dSSadaf Ebrahimi 8644*22dc650dSSadaf Ebrahimi/(?>a(*COMMIT)c)d|abd/ 8645*22dc650dSSadaf Ebrahimi\= Expect no match 8646*22dc650dSSadaf Ebrahimi abd 8647*22dc650dSSadaf EbrahimiNo match 8648*22dc650dSSadaf Ebrahimi 8649*22dc650dSSadaf Ebrahimi/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/ 8650*22dc650dSSadaf Ebrahimi ac 8651*22dc650dSSadaf Ebrahimi 0: ac 8652*22dc650dSSadaf Ebrahimi 1: <unset> 8653*22dc650dSSadaf Ebrahimi 2: c 8654*22dc650dSSadaf Ebrahimi 8655*22dc650dSSadaf Ebrahimi# These tests were formerly in test 2, but changes in PCRE and Perl have 8656*22dc650dSSadaf Ebrahimi# made them compatible. 8657*22dc650dSSadaf Ebrahimi 8658*22dc650dSSadaf Ebrahimi/^(a)?(?(1)a|b)+$/ 8659*22dc650dSSadaf Ebrahimi\= Expect no match 8660*22dc650dSSadaf Ebrahimi a 8661*22dc650dSSadaf EbrahimiNo match 8662*22dc650dSSadaf Ebrahimi 8663*22dc650dSSadaf Ebrahimi/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/x,mark 8664*22dc650dSSadaf Ebrahimi\= Expect no match 8665*22dc650dSSadaf Ebrahimi AAAC 8666*22dc650dSSadaf EbrahimiNo match, mark = A 8667*22dc650dSSadaf Ebrahimi 8668*22dc650dSSadaf Ebrahimi/^((abc|abcx)(*THEN)y|abcd)/ 8669*22dc650dSSadaf Ebrahimi abcd 8670*22dc650dSSadaf Ebrahimi 0: abcd 8671*22dc650dSSadaf Ebrahimi 1: abcd 8672*22dc650dSSadaf Ebrahimi\= Expect no match 8673*22dc650dSSadaf Ebrahimi abcxy 8674*22dc650dSSadaf EbrahimiNo match 8675*22dc650dSSadaf Ebrahimi 8676*22dc650dSSadaf Ebrahimi/^((yes|no)(*THEN)(*F))?/ 8677*22dc650dSSadaf Ebrahimi\= Expect no match 8678*22dc650dSSadaf Ebrahimi yes 8679*22dc650dSSadaf EbrahimiNo match 8680*22dc650dSSadaf Ebrahimi 8681*22dc650dSSadaf Ebrahimi/(A (.*) C? (*THEN) | A D) (*FAIL)/x 8682*22dc650dSSadaf Ebrahimi\= Expect no match 8683*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8684*22dc650dSSadaf EbrahimiNo match 8685*22dc650dSSadaf Ebrahimi 8686*22dc650dSSadaf Ebrahimi/(A (.*) C? (*THEN) | A D) z/x 8687*22dc650dSSadaf Ebrahimi\= Expect no match 8688*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8689*22dc650dSSadaf EbrahimiNo match 8690*22dc650dSSadaf Ebrahimi 8691*22dc650dSSadaf Ebrahimi/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x 8692*22dc650dSSadaf Ebrahimi\= Expect no match 8693*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8694*22dc650dSSadaf EbrahimiNo match 8695*22dc650dSSadaf Ebrahimi 8696*22dc650dSSadaf Ebrahimi/(A (.*) C? (*THEN) | A D) \s* z/x 8697*22dc650dSSadaf Ebrahimi\= Expect no match 8698*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8699*22dc650dSSadaf EbrahimiNo match 8700*22dc650dSSadaf Ebrahimi 8701*22dc650dSSadaf Ebrahimi/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x 8702*22dc650dSSadaf Ebrahimi\= Expect no match 8703*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8704*22dc650dSSadaf EbrahimiNo match 8705*22dc650dSSadaf Ebrahimi 8706*22dc650dSSadaf Ebrahimi/(A (.*) (?:C|) (*THEN) | A D) z/x 8707*22dc650dSSadaf Ebrahimi\= Expect no match 8708*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8709*22dc650dSSadaf EbrahimiNo match 8710*22dc650dSSadaf Ebrahimi 8711*22dc650dSSadaf Ebrahimi/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x 8712*22dc650dSSadaf Ebrahimi\= Expect no match 8713*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8714*22dc650dSSadaf EbrahimiNo match 8715*22dc650dSSadaf Ebrahimi 8716*22dc650dSSadaf Ebrahimi/(A (.*) C{0,6} (*THEN) | A D) z/x 8717*22dc650dSSadaf Ebrahimi\= Expect no match 8718*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8719*22dc650dSSadaf EbrahimiNo match 8720*22dc650dSSadaf Ebrahimi 8721*22dc650dSSadaf Ebrahimi/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x 8722*22dc650dSSadaf Ebrahimi\= Expect no match 8723*22dc650dSSadaf Ebrahimi AbcdCEBefgBhiBqz 8724*22dc650dSSadaf EbrahimiNo match 8725*22dc650dSSadaf Ebrahimi 8726*22dc650dSSadaf Ebrahimi/(A (.*) (CE){0,6} (*THEN) | A D) z/x 8727*22dc650dSSadaf Ebrahimi\= Expect no match 8728*22dc650dSSadaf Ebrahimi AbcdCEBefgBhiBqz 8729*22dc650dSSadaf EbrahimiNo match 8730*22dc650dSSadaf Ebrahimi 8731*22dc650dSSadaf Ebrahimi/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x 8732*22dc650dSSadaf Ebrahimi\= Expect no match 8733*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8734*22dc650dSSadaf EbrahimiNo match 8735*22dc650dSSadaf Ebrahimi 8736*22dc650dSSadaf Ebrahimi/(A (.*) (CE*){0,6} (*THEN) | A D) z/x 8737*22dc650dSSadaf Ebrahimi\= Expect no match 8738*22dc650dSSadaf Ebrahimi AbcdCBefgBhiBqz 8739*22dc650dSSadaf EbrahimiNo match 8740*22dc650dSSadaf Ebrahimi 8741*22dc650dSSadaf Ebrahimi/(?=a(*COMMIT)b|ac)ac|ac/ 8742*22dc650dSSadaf Ebrahimi\= Expect no match 8743*22dc650dSSadaf Ebrahimi ac 8744*22dc650dSSadaf EbrahimiNo match 8745*22dc650dSSadaf Ebrahimi 8746*22dc650dSSadaf Ebrahimi/(?=a(*COMMIT)b|(ac)) ac | (a)c/x 8747*22dc650dSSadaf Ebrahimi\= Expect no match 8748*22dc650dSSadaf Ebrahimi ac 8749*22dc650dSSadaf EbrahimiNo match 8750*22dc650dSSadaf Ebrahimi 8751*22dc650dSSadaf Ebrahimi# ---- 8752*22dc650dSSadaf Ebrahimi 8753*22dc650dSSadaf Ebrahimi/(?(?!b(*THEN)a)bn|bnn)/ 8754*22dc650dSSadaf Ebrahimi bnn 8755*22dc650dSSadaf Ebrahimi 0: bn 8756*22dc650dSSadaf Ebrahimi 8757*22dc650dSSadaf Ebrahimi/(?!b(*SKIP)a)bn|bnn/ 8758*22dc650dSSadaf Ebrahimi bnn 8759*22dc650dSSadaf Ebrahimi 0: bn 8760*22dc650dSSadaf Ebrahimi 8761*22dc650dSSadaf Ebrahimi/(?(?!b(*SKIP)a)bn|bnn)/ 8762*22dc650dSSadaf Ebrahimi bnn 8763*22dc650dSSadaf Ebrahimi 0: bn 8764*22dc650dSSadaf Ebrahimi 8765*22dc650dSSadaf Ebrahimi/(?!b(*PRUNE)a)bn|bnn/ 8766*22dc650dSSadaf Ebrahimi bnn 8767*22dc650dSSadaf Ebrahimi 0: bn 8768*22dc650dSSadaf Ebrahimi 8769*22dc650dSSadaf Ebrahimi/(?(?!b(*PRUNE)a)bn|bnn)/ 8770*22dc650dSSadaf Ebrahimi bnn 8771*22dc650dSSadaf Ebrahimi 0: bn 8772*22dc650dSSadaf Ebrahimi 8773*22dc650dSSadaf Ebrahimi/(?!b(*COMMIT)a)bn|bnn/ 8774*22dc650dSSadaf Ebrahimi bnn 8775*22dc650dSSadaf Ebrahimi 0: bn 8776*22dc650dSSadaf Ebrahimi 8777*22dc650dSSadaf Ebrahimi/(?(?!b(*COMMIT)a)bn|bnn)/ 8778*22dc650dSSadaf Ebrahimi bnn 8779*22dc650dSSadaf Ebrahimi 0: bn 8780*22dc650dSSadaf Ebrahimi 8781*22dc650dSSadaf Ebrahimi/(?=b(*SKIP)a)bn|bnn/ 8782*22dc650dSSadaf Ebrahimi\= Expect no match 8783*22dc650dSSadaf Ebrahimi bnn 8784*22dc650dSSadaf EbrahimiNo match 8785*22dc650dSSadaf Ebrahimi 8786*22dc650dSSadaf Ebrahimi/(?=b(*THEN)a)bn|bnn/ 8787*22dc650dSSadaf Ebrahimi bnn 8788*22dc650dSSadaf Ebrahimi 0: bnn 8789*22dc650dSSadaf Ebrahimi 8790*22dc650dSSadaf Ebrahimi/^(?!a(*SKIP)b)/ 8791*22dc650dSSadaf Ebrahimi ac 8792*22dc650dSSadaf Ebrahimi 0: 8793*22dc650dSSadaf Ebrahimi 8794*22dc650dSSadaf Ebrahimi/^(?!a(*SKIP)b)../ 8795*22dc650dSSadaf Ebrahimi acd 8796*22dc650dSSadaf Ebrahimi 0: ac 8797*22dc650dSSadaf Ebrahimi 8798*22dc650dSSadaf Ebrahimi/(?!a(*SKIP)b)../ 8799*22dc650dSSadaf Ebrahimi acd 8800*22dc650dSSadaf Ebrahimi 0: ac 8801*22dc650dSSadaf Ebrahimi 8802*22dc650dSSadaf Ebrahimi/^(?(?!a(*SKIP)b))/ 8803*22dc650dSSadaf Ebrahimi ac 8804*22dc650dSSadaf Ebrahimi 0: 8805*22dc650dSSadaf Ebrahimi 8806*22dc650dSSadaf Ebrahimi/^(?!a(*PRUNE)b)../ 8807*22dc650dSSadaf Ebrahimi acd 8808*22dc650dSSadaf Ebrahimi 0: ac 8809*22dc650dSSadaf Ebrahimi 8810*22dc650dSSadaf Ebrahimi/(?!a(*PRUNE)b)../ 8811*22dc650dSSadaf Ebrahimi acd 8812*22dc650dSSadaf Ebrahimi 0: ac 8813*22dc650dSSadaf Ebrahimi 8814*22dc650dSSadaf Ebrahimi/(?!a(*COMMIT)b)ac|cd/ 8815*22dc650dSSadaf Ebrahimi ac 8816*22dc650dSSadaf Ebrahimi 0: ac 8817*22dc650dSSadaf Ebrahimi 8818*22dc650dSSadaf Ebrahimi/\A.*?(?:a|bc)/ 8819*22dc650dSSadaf Ebrahimi ba 8820*22dc650dSSadaf Ebrahimi 0: ba 8821*22dc650dSSadaf Ebrahimi 8822*22dc650dSSadaf Ebrahimi/^(A(*THEN)B|C(*THEN)D)/ 8823*22dc650dSSadaf Ebrahimi CD 8824*22dc650dSSadaf Ebrahimi 0: CD 8825*22dc650dSSadaf Ebrahimi 1: CD 8826*22dc650dSSadaf Ebrahimi 8827*22dc650dSSadaf Ebrahimi/(*:m(m)(?&y)(?(DEFINE)(?<y>b))/mark 8828*22dc650dSSadaf Ebrahimi abc 8829*22dc650dSSadaf Ebrahimi 0: b 8830*22dc650dSSadaf EbrahimiMK: m(m 8831*22dc650dSSadaf Ebrahimi 8832*22dc650dSSadaf Ebrahimi/(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/mark 8833*22dc650dSSadaf Ebrahimi abc 8834*22dc650dSSadaf Ebrahimi 0: b 8835*22dc650dSSadaf EbrahimiMK: m(m 8836*22dc650dSSadaf Ebrahimi 8837*22dc650dSSadaf Ebrahimi/(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/mark 8838*22dc650dSSadaf Ebrahimi abc 8839*22dc650dSSadaf Ebrahimi 0: b 8840*22dc650dSSadaf Ebrahimi 8841*22dc650dSSadaf Ebrahimi/(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/mark 8842*22dc650dSSadaf Ebrahimi abc 8843*22dc650dSSadaf Ebrahimi 0: b 8844*22dc650dSSadaf EbrahimiMK: m(m 8845*22dc650dSSadaf Ebrahimi 8846*22dc650dSSadaf Ebrahimi/^\d*\w{4}/ 8847*22dc650dSSadaf Ebrahimi 1234 8848*22dc650dSSadaf Ebrahimi 0: 1234 8849*22dc650dSSadaf Ebrahimi\= Expect no match 8850*22dc650dSSadaf Ebrahimi 123 8851*22dc650dSSadaf EbrahimiNo match 8852*22dc650dSSadaf Ebrahimi 8853*22dc650dSSadaf Ebrahimi/^[^b]*\w{4}/ 8854*22dc650dSSadaf Ebrahimi aaaa 8855*22dc650dSSadaf Ebrahimi 0: aaaa 8856*22dc650dSSadaf Ebrahimi\= Expect no match 8857*22dc650dSSadaf Ebrahimi aaa 8858*22dc650dSSadaf EbrahimiNo match 8859*22dc650dSSadaf Ebrahimi 8860*22dc650dSSadaf Ebrahimi/^[^b]*\w{4}/i 8861*22dc650dSSadaf Ebrahimi aaaa 8862*22dc650dSSadaf Ebrahimi 0: aaaa 8863*22dc650dSSadaf Ebrahimi\= Expect no match 8864*22dc650dSSadaf Ebrahimi aaa 8865*22dc650dSSadaf EbrahimiNo match 8866*22dc650dSSadaf Ebrahimi 8867*22dc650dSSadaf Ebrahimi/^a*\w{4}/ 8868*22dc650dSSadaf Ebrahimi aaaa 8869*22dc650dSSadaf Ebrahimi 0: aaaa 8870*22dc650dSSadaf Ebrahimi\= Expect no match 8871*22dc650dSSadaf Ebrahimi aaa 8872*22dc650dSSadaf EbrahimiNo match 8873*22dc650dSSadaf Ebrahimi 8874*22dc650dSSadaf Ebrahimi/^a*\w{4}/i 8875*22dc650dSSadaf Ebrahimi aaaa 8876*22dc650dSSadaf Ebrahimi 0: aaaa 8877*22dc650dSSadaf Ebrahimi\= Expect no match 8878*22dc650dSSadaf Ebrahimi aaa 8879*22dc650dSSadaf EbrahimiNo match 8880*22dc650dSSadaf Ebrahimi 8881*22dc650dSSadaf Ebrahimi/(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames 8882*22dc650dSSadaf Ebrahimi foofoo 8883*22dc650dSSadaf Ebrahimi 0: foofoo 8884*22dc650dSSadaf Ebrahimi 1: foo 8885*22dc650dSSadaf Ebrahimi barbar 8886*22dc650dSSadaf Ebrahimi 0: barbar 8887*22dc650dSSadaf Ebrahimi 1: <unset> 8888*22dc650dSSadaf Ebrahimi 2: bar 8889*22dc650dSSadaf Ebrahimi 8890*22dc650dSSadaf Ebrahimi/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames 8891*22dc650dSSadaf Ebrahimi AfooA 8892*22dc650dSSadaf Ebrahimi 0: AfooA 8893*22dc650dSSadaf Ebrahimi 1: A 8894*22dc650dSSadaf Ebrahimi 2: foo 8895*22dc650dSSadaf Ebrahimi AbarA 8896*22dc650dSSadaf Ebrahimi 0: AbarA 8897*22dc650dSSadaf Ebrahimi 1: A 8898*22dc650dSSadaf Ebrahimi 2: <unset> 8899*22dc650dSSadaf Ebrahimi 3: bar 8900*22dc650dSSadaf Ebrahimi\= Expect no match 8901*22dc650dSSadaf Ebrahimi Afoofoo 8902*22dc650dSSadaf EbrahimiNo match 8903*22dc650dSSadaf Ebrahimi Abarbar 8904*22dc650dSSadaf EbrahimiNo match 8905*22dc650dSSadaf Ebrahimi 8906*22dc650dSSadaf Ebrahimi/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 8907*22dc650dSSadaf Ebrahimi 1 IN SOA non-sp1 non-sp2( 8908*22dc650dSSadaf Ebrahimi 0: 1 IN SOA non-sp1 non-sp2( 8909*22dc650dSSadaf Ebrahimi 1: 1 8910*22dc650dSSadaf Ebrahimi 2: non-sp1 8911*22dc650dSSadaf Ebrahimi 3: non-sp2 8912*22dc650dSSadaf Ebrahimi 8913*22dc650dSSadaf Ebrahimi/^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?('A')x) (?(<B>)y)$/x,dupnames 8914*22dc650dSSadaf Ebrahimi Ax 8915*22dc650dSSadaf Ebrahimi 0: Ax 8916*22dc650dSSadaf Ebrahimi 1: A 8917*22dc650dSSadaf Ebrahimi BAxy 8918*22dc650dSSadaf Ebrahimi 0: BAxy 8919*22dc650dSSadaf Ebrahimi 1: <unset> 8920*22dc650dSSadaf Ebrahimi 2: B 8921*22dc650dSSadaf Ebrahimi 3: A 8922*22dc650dSSadaf Ebrahimi 8923*22dc650dSSadaf Ebrahimi/^A\xZ/ 8924*22dc650dSSadaf Ebrahimi A\0Z 8925*22dc650dSSadaf Ebrahimi 0: A\x00Z 8926*22dc650dSSadaf Ebrahimi 8927*22dc650dSSadaf Ebrahimi/^A\o{123}B/ 8928*22dc650dSSadaf Ebrahimi A\123B 8929*22dc650dSSadaf Ebrahimi 0: ASB 8930*22dc650dSSadaf Ebrahimi 8931*22dc650dSSadaf Ebrahimi/ ^ a + + b $ /x 8932*22dc650dSSadaf Ebrahimi aaaab 8933*22dc650dSSadaf Ebrahimi 0: aaaab 8934*22dc650dSSadaf Ebrahimi 8935*22dc650dSSadaf Ebrahimi/ ^ a + #comment 8936*22dc650dSSadaf Ebrahimi + b $ /x 8937*22dc650dSSadaf Ebrahimi aaaab 8938*22dc650dSSadaf Ebrahimi 0: aaaab 8939*22dc650dSSadaf Ebrahimi 8940*22dc650dSSadaf Ebrahimi/ ^ a + #comment 8941*22dc650dSSadaf Ebrahimi #comment 8942*22dc650dSSadaf Ebrahimi + b $ /x 8943*22dc650dSSadaf Ebrahimi aaaab 8944*22dc650dSSadaf Ebrahimi 0: aaaab 8945*22dc650dSSadaf Ebrahimi 8946*22dc650dSSadaf Ebrahimi/ ^ (?> a + ) b $ /x 8947*22dc650dSSadaf Ebrahimi aaaab 8948*22dc650dSSadaf Ebrahimi 0: aaaab 8949*22dc650dSSadaf Ebrahimi 8950*22dc650dSSadaf Ebrahimi/ ^ ( a + ) + + \w $ /x 8951*22dc650dSSadaf Ebrahimi aaaab 8952*22dc650dSSadaf Ebrahimi 0: aaaab 8953*22dc650dSSadaf Ebrahimi 1: aaaa 8954*22dc650dSSadaf Ebrahimi 8955*22dc650dSSadaf Ebrahimi/(?:a\Kb)*+/aftertext 8956*22dc650dSSadaf Ebrahimi ababc 8957*22dc650dSSadaf Ebrahimi 0: b 8958*22dc650dSSadaf Ebrahimi 0+ c 8959*22dc650dSSadaf Ebrahimi 8960*22dc650dSSadaf Ebrahimi/(?>a\Kb)*/aftertext 8961*22dc650dSSadaf Ebrahimi ababc 8962*22dc650dSSadaf Ebrahimi 0: b 8963*22dc650dSSadaf Ebrahimi 0+ c 8964*22dc650dSSadaf Ebrahimi 8965*22dc650dSSadaf Ebrahimi/(?:a\Kb)*/aftertext 8966*22dc650dSSadaf Ebrahimi ababc 8967*22dc650dSSadaf Ebrahimi 0: b 8968*22dc650dSSadaf Ebrahimi 0+ c 8969*22dc650dSSadaf Ebrahimi 8970*22dc650dSSadaf Ebrahimi/(a\Kb)*+/aftertext 8971*22dc650dSSadaf Ebrahimi ababc 8972*22dc650dSSadaf Ebrahimi 0: b 8973*22dc650dSSadaf Ebrahimi 0+ c 8974*22dc650dSSadaf Ebrahimi 1: ab 8975*22dc650dSSadaf Ebrahimi 8976*22dc650dSSadaf Ebrahimi/(a\Kb)*/aftertext 8977*22dc650dSSadaf Ebrahimi ababc 8978*22dc650dSSadaf Ebrahimi 0: b 8979*22dc650dSSadaf Ebrahimi 0+ c 8980*22dc650dSSadaf Ebrahimi 1: ab 8981*22dc650dSSadaf Ebrahimi 8982*22dc650dSSadaf Ebrahimi/(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/ 8983*22dc650dSSadaf Ebrahimi\= Expect no match 8984*22dc650dSSadaf Ebrahimi acb 8985*22dc650dSSadaf EbrahimiNo match 8986*22dc650dSSadaf Ebrahimi 8987*22dc650dSSadaf Ebrahimi/\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++/ 8988*22dc650dSSadaf Ebrahimi NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 8989*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER 8990*22dc650dSSadaf Ebrahimi 8991*22dc650dSSadaf Ebrahimi/\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++/ 8992*22dc650dSSadaf Ebrahimi NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 8993*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER 8994*22dc650dSSadaf Ebrahimi 8995*22dc650dSSadaf Ebrahimi/\A(?:[^\"]++|\"(?:[^\"]++|\"\")++\")++/ 8996*22dc650dSSadaf Ebrahimi NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 8997*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER 8998*22dc650dSSadaf Ebrahimi 8999*22dc650dSSadaf Ebrahimi/\A([^\"1]++|[\"2]([^\"3]*+|[\"4][\"5])*+[\"6])++/ 9000*22dc650dSSadaf Ebrahimi NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED 9001*22dc650dSSadaf Ebrahimi 0: NON QUOTED "QUOT""ED" AFTER 9002*22dc650dSSadaf Ebrahimi 1: AFTER 9003*22dc650dSSadaf Ebrahimi 2: 9004*22dc650dSSadaf Ebrahimi 9005*22dc650dSSadaf Ebrahimi/^\w+(?>\s*)(?<=\w)/ 9006*22dc650dSSadaf Ebrahimi test test 9007*22dc650dSSadaf Ebrahimi 0: tes 9008*22dc650dSSadaf Ebrahimi 9009*22dc650dSSadaf Ebrahimi/(?P<same>a)(?P<same>b)/g,dupnames 9010*22dc650dSSadaf Ebrahimi abbaba 9011*22dc650dSSadaf Ebrahimi 0: ab 9012*22dc650dSSadaf Ebrahimi 1: a 9013*22dc650dSSadaf Ebrahimi 2: b 9014*22dc650dSSadaf Ebrahimi 0: ab 9015*22dc650dSSadaf Ebrahimi 1: a 9016*22dc650dSSadaf Ebrahimi 2: b 9017*22dc650dSSadaf Ebrahimi 9018*22dc650dSSadaf Ebrahimi/(?P<same>a)(?P<same>b)(?P=same)/g,dupnames 9019*22dc650dSSadaf Ebrahimi abbaba 9020*22dc650dSSadaf Ebrahimi 0: aba 9021*22dc650dSSadaf Ebrahimi 1: a 9022*22dc650dSSadaf Ebrahimi 2: b 9023*22dc650dSSadaf Ebrahimi 9024*22dc650dSSadaf Ebrahimi/(?P=same)?(?P<same>a)(?P<same>b)/g,dupnames 9025*22dc650dSSadaf Ebrahimi abbaba 9026*22dc650dSSadaf Ebrahimi 0: ab 9027*22dc650dSSadaf Ebrahimi 1: a 9028*22dc650dSSadaf Ebrahimi 2: b 9029*22dc650dSSadaf Ebrahimi 0: ab 9030*22dc650dSSadaf Ebrahimi 1: a 9031*22dc650dSSadaf Ebrahimi 2: b 9032*22dc650dSSadaf Ebrahimi 9033*22dc650dSSadaf Ebrahimi/(?:(?P=same)?(?:(?P=same)(?P<same>a)(?P=same)|(?P=same)?(?P<same>b)(?P=same)){2}(?P=same)(?P<same>c)(?P=same)){2}(?P<same>z)?/g,dupnames 9034*22dc650dSSadaf Ebrahimi\= Expect no match 9035*22dc650dSSadaf Ebrahimi bbbaaaccccaaabbbcc 9036*22dc650dSSadaf EbrahimiNo match 9037*22dc650dSSadaf Ebrahimi 9038*22dc650dSSadaf Ebrahimi/(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/ 9039*22dc650dSSadaf Ebrahimi acl 9040*22dc650dSSadaf Ebrahimi 0: acl 9041*22dc650dSSadaf Ebrahimi 1: a 9042*22dc650dSSadaf Ebrahimi bdl 9043*22dc650dSSadaf Ebrahimi 0: bdl 9044*22dc650dSSadaf Ebrahimi 1: <unset> 9045*22dc650dSSadaf Ebrahimi 2: b 9046*22dc650dSSadaf Ebrahimi adl 9047*22dc650dSSadaf Ebrahimi 0: dl 9048*22dc650dSSadaf Ebrahimi bcl 9049*22dc650dSSadaf Ebrahimi 0: l 9050*22dc650dSSadaf Ebrahimi 9051*22dc650dSSadaf Ebrahimi/\sabc/ 9052*22dc650dSSadaf Ebrahimi \x{0b}abc 9053*22dc650dSSadaf Ebrahimi 0: \x0babc 9054*22dc650dSSadaf Ebrahimi 9055*22dc650dSSadaf Ebrahimi/[\Qa]\E]+/ 9056*22dc650dSSadaf Ebrahimi aa]] 9057*22dc650dSSadaf Ebrahimi 0: aa]] 9058*22dc650dSSadaf Ebrahimi 9059*22dc650dSSadaf Ebrahimi/[\Q]a\E]+/ 9060*22dc650dSSadaf Ebrahimi aa]] 9061*22dc650dSSadaf Ebrahimi 0: aa]] 9062*22dc650dSSadaf Ebrahimi 9063*22dc650dSSadaf Ebrahimi/A((((((((a))))))))\8B/ 9064*22dc650dSSadaf Ebrahimi AaaB 9065*22dc650dSSadaf Ebrahimi 0: AaaB 9066*22dc650dSSadaf Ebrahimi 1: a 9067*22dc650dSSadaf Ebrahimi 2: a 9068*22dc650dSSadaf Ebrahimi 3: a 9069*22dc650dSSadaf Ebrahimi 4: a 9070*22dc650dSSadaf Ebrahimi 5: a 9071*22dc650dSSadaf Ebrahimi 6: a 9072*22dc650dSSadaf Ebrahimi 7: a 9073*22dc650dSSadaf Ebrahimi 8: a 9074*22dc650dSSadaf Ebrahimi 9075*22dc650dSSadaf Ebrahimi/A(((((((((a)))))))))\9B/ 9076*22dc650dSSadaf Ebrahimi AaaB 9077*22dc650dSSadaf Ebrahimi 0: AaaB 9078*22dc650dSSadaf Ebrahimi 1: a 9079*22dc650dSSadaf Ebrahimi 2: a 9080*22dc650dSSadaf Ebrahimi 3: a 9081*22dc650dSSadaf Ebrahimi 4: a 9082*22dc650dSSadaf Ebrahimi 5: a 9083*22dc650dSSadaf Ebrahimi 6: a 9084*22dc650dSSadaf Ebrahimi 7: a 9085*22dc650dSSadaf Ebrahimi 8: a 9086*22dc650dSSadaf Ebrahimi 9: a 9087*22dc650dSSadaf Ebrahimi 9088*22dc650dSSadaf Ebrahimi/A[\8\9]B/ 9089*22dc650dSSadaf Ebrahimi A8B 9090*22dc650dSSadaf Ebrahimi 0: A8B 9091*22dc650dSSadaf Ebrahimi A9B 9092*22dc650dSSadaf Ebrahimi 0: A9B 9093*22dc650dSSadaf Ebrahimi 9094*22dc650dSSadaf Ebrahimi/(|ab)*?d/ 9095*22dc650dSSadaf Ebrahimi abd 9096*22dc650dSSadaf Ebrahimi 0: abd 9097*22dc650dSSadaf Ebrahimi 1: ab 9098*22dc650dSSadaf Ebrahimi xyd 9099*22dc650dSSadaf Ebrahimi 0: d 9100*22dc650dSSadaf Ebrahimi 9101*22dc650dSSadaf Ebrahimi/(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))/ 9102*22dc650dSSadaf Ebrahimi 1234abcd 9103*22dc650dSSadaf Ebrahimi 0: 9104*22dc650dSSadaf Ebrahimi 1: <unset> 9105*22dc650dSSadaf Ebrahimi 2: <unset> 9106*22dc650dSSadaf Ebrahimi 3: <unset> 9107*22dc650dSSadaf Ebrahimi 4: <unset> 9108*22dc650dSSadaf Ebrahimi 5: 9109*22dc650dSSadaf Ebrahimi 9110*22dc650dSSadaf Ebrahimi/(\2|a)(\1)/ 9111*22dc650dSSadaf Ebrahimi aaa 9112*22dc650dSSadaf Ebrahimi 0: aa 9113*22dc650dSSadaf Ebrahimi 1: a 9114*22dc650dSSadaf Ebrahimi 2: a 9115*22dc650dSSadaf Ebrahimi 9116*22dc650dSSadaf Ebrahimi/(\2)(\1)/ 9117*22dc650dSSadaf Ebrahimi 9118*22dc650dSSadaf Ebrahimi/Z*(|d*){216}/ 9119*22dc650dSSadaf Ebrahimi 9120*22dc650dSSadaf Ebrahimi/(?1)(?#?'){8}(a)/ 9121*22dc650dSSadaf Ebrahimi baaaaaaaaac 9122*22dc650dSSadaf Ebrahimi 0: aaaaaaaaa 9123*22dc650dSSadaf Ebrahimi 1: a 9124*22dc650dSSadaf Ebrahimi 9125*22dc650dSSadaf Ebrahimi/((((((((((((x))))))))))))\12/ 9126*22dc650dSSadaf Ebrahimi xx 9127*22dc650dSSadaf Ebrahimi 0: xx 9128*22dc650dSSadaf Ebrahimi 1: x 9129*22dc650dSSadaf Ebrahimi 2: x 9130*22dc650dSSadaf Ebrahimi 3: x 9131*22dc650dSSadaf Ebrahimi 4: x 9132*22dc650dSSadaf Ebrahimi 5: x 9133*22dc650dSSadaf Ebrahimi 6: x 9134*22dc650dSSadaf Ebrahimi 7: x 9135*22dc650dSSadaf Ebrahimi 8: x 9136*22dc650dSSadaf Ebrahimi 9: x 9137*22dc650dSSadaf Ebrahimi10: x 9138*22dc650dSSadaf Ebrahimi11: x 9139*22dc650dSSadaf Ebrahimi12: x 9140*22dc650dSSadaf Ebrahimi 9141*22dc650dSSadaf Ebrahimi/A[\8]B[\9]C/ 9142*22dc650dSSadaf Ebrahimi A8B9C 9143*22dc650dSSadaf Ebrahimi 0: A8B9C 9144*22dc650dSSadaf Ebrahimi 9145*22dc650dSSadaf Ebrahimi/(?1)()((((((\1++))\x85)+)|))/ 9146*22dc650dSSadaf Ebrahimi \x85\x85 9147*22dc650dSSadaf Ebrahimi 0: \x85\x85 9148*22dc650dSSadaf Ebrahimi 1: 9149*22dc650dSSadaf Ebrahimi 2: \x85\x85 9150*22dc650dSSadaf Ebrahimi 3: \x85\x85 9151*22dc650dSSadaf Ebrahimi 4: \x85\x85 9152*22dc650dSSadaf Ebrahimi 5: \x85 9153*22dc650dSSadaf Ebrahimi 6: 9154*22dc650dSSadaf Ebrahimi 7: 9155*22dc650dSSadaf Ebrahimi 9156*22dc650dSSadaf Ebrahimi/(?|(\k'Pm')|(?'Pm'))/ 9157*22dc650dSSadaf Ebrahimi abcd 9158*22dc650dSSadaf Ebrahimi 0: 9159*22dc650dSSadaf Ebrahimi 1: 9160*22dc650dSSadaf Ebrahimi 9161*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))\g{1}/ 9162*22dc650dSSadaf Ebrahimi aaaaaa 9163*22dc650dSSadaf Ebrahimi 0: aaaaaa 9164*22dc650dSSadaf Ebrahimi 1: aaa 9165*22dc650dSSadaf Ebrahimi bb 9166*22dc650dSSadaf Ebrahimi 0: bb 9167*22dc650dSSadaf Ebrahimi 1: b 9168*22dc650dSSadaf Ebrahimi 9169*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))(?1)/ 9170*22dc650dSSadaf Ebrahimi aaaaaa 9171*22dc650dSSadaf Ebrahimi 0: aaaaaa 9172*22dc650dSSadaf Ebrahimi 1: aaa 9173*22dc650dSSadaf Ebrahimi baaa 9174*22dc650dSSadaf Ebrahimi 0: baaa 9175*22dc650dSSadaf Ebrahimi 1: b 9176*22dc650dSSadaf Ebrahimi\= Expect no match 9177*22dc650dSSadaf Ebrahimi bb 9178*22dc650dSSadaf EbrahimiNo match 9179*22dc650dSSadaf Ebrahimi 9180*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))/ 9181*22dc650dSSadaf Ebrahimi xaaa 9182*22dc650dSSadaf Ebrahimi 0: aaa 9183*22dc650dSSadaf Ebrahimi 1: aaa 9184*22dc650dSSadaf Ebrahimi xbc 9185*22dc650dSSadaf Ebrahimi 0: b 9186*22dc650dSSadaf Ebrahimi 1: b 9187*22dc650dSSadaf Ebrahimi 9188*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))\k'a'/ 9189*22dc650dSSadaf Ebrahimi aaaaaa 9190*22dc650dSSadaf Ebrahimi 0: aaaaaa 9191*22dc650dSSadaf Ebrahimi 1: aaa 9192*22dc650dSSadaf Ebrahimi bb 9193*22dc650dSSadaf Ebrahimi 0: bb 9194*22dc650dSSadaf Ebrahimi 1: b 9195*22dc650dSSadaf Ebrahimi 9196*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/dupnames 9197*22dc650dSSadaf Ebrahimi aaaccccaaa 9198*22dc650dSSadaf Ebrahimi 0: aaaccccaaa 9199*22dc650dSSadaf Ebrahimi 1: aaa 9200*22dc650dSSadaf Ebrahimi 2: cccc 9201*22dc650dSSadaf Ebrahimi bccccb 9202*22dc650dSSadaf Ebrahimi 0: bccccb 9203*22dc650dSSadaf Ebrahimi 1: b 9204*22dc650dSSadaf Ebrahimi 2: cccc 9205*22dc650dSSadaf Ebrahimi 9206*22dc650dSSadaf Ebrahimi# /x does not apply to MARK labels 9207*22dc650dSSadaf Ebrahimi 9208*22dc650dSSadaf Ebrahimi/x (*MARK:ab cd # comment 9209*22dc650dSSadaf Ebrahimief) x/x,mark 9210*22dc650dSSadaf Ebrahimi axxz 9211*22dc650dSSadaf Ebrahimi 0: xx 9212*22dc650dSSadaf EbrahimiMK: ab cd # comment\x0aef 9213*22dc650dSSadaf Ebrahimi 9214*22dc650dSSadaf Ebrahimi/(?<=a(B){0}c)X/ 9215*22dc650dSSadaf Ebrahimi acX 9216*22dc650dSSadaf Ebrahimi 0: X 9217*22dc650dSSadaf Ebrahimi 9218*22dc650dSSadaf Ebrahimi/(?<DEFINE>b)(?(DEFINE)(a+))(?&DEFINE)/ 9219*22dc650dSSadaf Ebrahimi bbbb 9220*22dc650dSSadaf Ebrahimi 0: bb 9221*22dc650dSSadaf Ebrahimi 1: b 9222*22dc650dSSadaf Ebrahimi\= Expect no match 9223*22dc650dSSadaf Ebrahimi baaab 9224*22dc650dSSadaf EbrahimiNo match 9225*22dc650dSSadaf Ebrahimi 9226*22dc650dSSadaf Ebrahimi/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\s])/ 9227*22dc650dSSadaf Ebrahimi \ Fred:099 9228*22dc650dSSadaf Ebrahimi 0: 9229*22dc650dSSadaf Ebrahimi 9230*22dc650dSSadaf Ebrahimi/(?=.*X)X$/ 9231*22dc650dSSadaf Ebrahimi \ X 9232*22dc650dSSadaf Ebrahimi 0: X 9233*22dc650dSSadaf Ebrahimi 9234*22dc650dSSadaf Ebrahimi/(?s)(?=.*?)b/ 9235*22dc650dSSadaf Ebrahimi aabc 9236*22dc650dSSadaf Ebrahimi 0: b 9237*22dc650dSSadaf Ebrahimi 9238*22dc650dSSadaf Ebrahimi/(Z)(a)\2{1,2}?(?-i)\1X/i 9239*22dc650dSSadaf Ebrahimi ZaAAZX 9240*22dc650dSSadaf Ebrahimi 0: ZaAAZX 9241*22dc650dSSadaf Ebrahimi 1: Z 9242*22dc650dSSadaf Ebrahimi 2: a 9243*22dc650dSSadaf Ebrahimi 9244*22dc650dSSadaf Ebrahimi/(?'c')XX(?'YYYYYYYYYYYYYYYYYYYYYYYCl')/ 9245*22dc650dSSadaf Ebrahimi 9246*22dc650dSSadaf Ebrahimi/[s[:digit:]\E-H]+/ 9247*22dc650dSSadaf Ebrahimi s09-H 9248*22dc650dSSadaf Ebrahimi 0: s09-H 9249*22dc650dSSadaf Ebrahimi 9250*22dc650dSSadaf Ebrahimi/[s[:digit:]\Q\E-H]+/ 9251*22dc650dSSadaf Ebrahimi s09-H 9252*22dc650dSSadaf Ebrahimi 0: s09-H 9253*22dc650dSSadaf Ebrahimi 9254*22dc650dSSadaf Ebrahimi/a+(?:|b)a/ 9255*22dc650dSSadaf Ebrahimi aaaa 9256*22dc650dSSadaf Ebrahimi 0: aaaa 9257*22dc650dSSadaf Ebrahimi 9258*22dc650dSSadaf Ebrahimi/X?(R||){3335}/ 9259*22dc650dSSadaf Ebrahimi 9260*22dc650dSSadaf Ebrahimi/(?1)(A(*COMMIT)|B)D/ 9261*22dc650dSSadaf Ebrahimi ABD 9262*22dc650dSSadaf Ebrahimi 0: ABD 9263*22dc650dSSadaf Ebrahimi 1: B 9264*22dc650dSSadaf Ebrahimi XABD 9265*22dc650dSSadaf Ebrahimi 0: ABD 9266*22dc650dSSadaf Ebrahimi 1: B 9267*22dc650dSSadaf Ebrahimi BAD 9268*22dc650dSSadaf Ebrahimi 0: BAD 9269*22dc650dSSadaf Ebrahimi 1: A 9270*22dc650dSSadaf Ebrahimi ABXABD 9271*22dc650dSSadaf Ebrahimi 0: ABD 9272*22dc650dSSadaf Ebrahimi 1: B 9273*22dc650dSSadaf Ebrahimi\= Expect no match 9274*22dc650dSSadaf Ebrahimi ABX 9275*22dc650dSSadaf EbrahimiNo match 9276*22dc650dSSadaf Ebrahimi 9277*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<m> 1? (?=(?<cond>2)?) 1 2 (?('cond')|3))) 9278*22dc650dSSadaf Ebrahimi \A 9279*22dc650dSSadaf Ebrahimi () 9280*22dc650dSSadaf Ebrahimi (?&m) 9281*22dc650dSSadaf Ebrahimi \Z/x 9282*22dc650dSSadaf Ebrahimi 123 9283*22dc650dSSadaf Ebrahimi 0: 123 9284*22dc650dSSadaf Ebrahimi 1: <unset> 9285*22dc650dSSadaf Ebrahimi 2: <unset> 9286*22dc650dSSadaf Ebrahimi 3: 9287*22dc650dSSadaf Ebrahimi 9288*22dc650dSSadaf Ebrahimi/^(?: 9289*22dc650dSSadaf Ebrahimi(?: A| (1? (?=(?<cond>2)?) (1) 2 (?('cond')|3)) ) 9290*22dc650dSSadaf Ebrahimi(Z) 9291*22dc650dSSadaf Ebrahimi)+$/x 9292*22dc650dSSadaf Ebrahimi AZ123Z 9293*22dc650dSSadaf Ebrahimi 0: AZ123Z 9294*22dc650dSSadaf Ebrahimi 1: 123 9295*22dc650dSSadaf Ebrahimi 2: <unset> 9296*22dc650dSSadaf Ebrahimi 3: 1 9297*22dc650dSSadaf Ebrahimi 4: Z 9298*22dc650dSSadaf Ebrahimi\= Expect no match 9299*22dc650dSSadaf Ebrahimi AZ12Z 9300*22dc650dSSadaf EbrahimiNo match 9301*22dc650dSSadaf Ebrahimi 9302*22dc650dSSadaf Ebrahimi/^ (?(DEFINE) ( (?!(a)\2b)..) ) ()(?1) /x 9303*22dc650dSSadaf Ebrahimi acb 9304*22dc650dSSadaf Ebrahimi 0: ac 9305*22dc650dSSadaf Ebrahimi 1: <unset> 9306*22dc650dSSadaf Ebrahimi 2: <unset> 9307*22dc650dSSadaf Ebrahimi 3: 9308*22dc650dSSadaf Ebrahimi\= Expect no match 9309*22dc650dSSadaf Ebrahimi aab 9310*22dc650dSSadaf EbrahimiNo match 9311*22dc650dSSadaf Ebrahimi 9312*22dc650dSSadaf Ebrahimi/(?>ab|abab){1,5}?M/ 9313*22dc650dSSadaf Ebrahimi abababababababababababM 9314*22dc650dSSadaf Ebrahimi 0: abababababM 9315*22dc650dSSadaf Ebrahimi 9316*22dc650dSSadaf Ebrahimi/(?>ab|abab){2}?M/ 9317*22dc650dSSadaf Ebrahimi abababM 9318*22dc650dSSadaf Ebrahimi 0: ababM 9319*22dc650dSSadaf Ebrahimi 9320*22dc650dSSadaf Ebrahimi/((?(?=(a))a)+k)/ 9321*22dc650dSSadaf Ebrahimi bbak 9322*22dc650dSSadaf Ebrahimi 0: ak 9323*22dc650dSSadaf Ebrahimi 1: ak 9324*22dc650dSSadaf Ebrahimi 2: a 9325*22dc650dSSadaf Ebrahimi 9326*22dc650dSSadaf Ebrahimi/((?(?=(a))a|)+k)/ 9327*22dc650dSSadaf Ebrahimi bbak 9328*22dc650dSSadaf Ebrahimi 0: ak 9329*22dc650dSSadaf Ebrahimi 1: ak 9330*22dc650dSSadaf Ebrahimi 2: a 9331*22dc650dSSadaf Ebrahimi 9332*22dc650dSSadaf Ebrahimi/(?(?!(b))a|b)+k/ 9333*22dc650dSSadaf Ebrahimi ababbalbbadabak 9334*22dc650dSSadaf Ebrahimi 0: abak 9335*22dc650dSSadaf Ebrahimi 1: b 9336*22dc650dSSadaf Ebrahimi 9337*22dc650dSSadaf Ebrahimi/(?!(b))c|b/ 9338*22dc650dSSadaf Ebrahimi Ab 9339*22dc650dSSadaf Ebrahimi 0: b 9340*22dc650dSSadaf Ebrahimi Ac 9341*22dc650dSSadaf Ebrahimi 0: c 9342*22dc650dSSadaf Ebrahimi 9343*22dc650dSSadaf Ebrahimi/(?=(b))b|c/ 9344*22dc650dSSadaf Ebrahimi Ab 9345*22dc650dSSadaf Ebrahimi 0: b 9346*22dc650dSSadaf Ebrahimi 1: b 9347*22dc650dSSadaf Ebrahimi Ac 9348*22dc650dSSadaf Ebrahimi 0: c 9349*22dc650dSSadaf Ebrahimi 9350*22dc650dSSadaf Ebrahimi/^(.|(.)(?1)\2)$/ 9351*22dc650dSSadaf Ebrahimi a 9352*22dc650dSSadaf Ebrahimi 0: a 9353*22dc650dSSadaf Ebrahimi 1: a 9354*22dc650dSSadaf Ebrahimi aba 9355*22dc650dSSadaf Ebrahimi 0: aba 9356*22dc650dSSadaf Ebrahimi 1: aba 9357*22dc650dSSadaf Ebrahimi 2: a 9358*22dc650dSSadaf Ebrahimi abcba 9359*22dc650dSSadaf Ebrahimi 0: abcba 9360*22dc650dSSadaf Ebrahimi 1: abcba 9361*22dc650dSSadaf Ebrahimi 2: a 9362*22dc650dSSadaf Ebrahimi ababa 9363*22dc650dSSadaf Ebrahimi 0: ababa 9364*22dc650dSSadaf Ebrahimi 1: ababa 9365*22dc650dSSadaf Ebrahimi 2: a 9366*22dc650dSSadaf Ebrahimi abcdcba 9367*22dc650dSSadaf Ebrahimi 0: abcdcba 9368*22dc650dSSadaf Ebrahimi 1: abcdcba 9369*22dc650dSSadaf Ebrahimi 2: a 9370*22dc650dSSadaf Ebrahimi 9371*22dc650dSSadaf Ebrahimi/^((.)(?1)\2|.?)$/ 9372*22dc650dSSadaf Ebrahimi a 9373*22dc650dSSadaf Ebrahimi 0: a 9374*22dc650dSSadaf Ebrahimi 1: a 9375*22dc650dSSadaf Ebrahimi aba 9376*22dc650dSSadaf Ebrahimi 0: aba 9377*22dc650dSSadaf Ebrahimi 1: aba 9378*22dc650dSSadaf Ebrahimi 2: a 9379*22dc650dSSadaf Ebrahimi abba 9380*22dc650dSSadaf Ebrahimi 0: abba 9381*22dc650dSSadaf Ebrahimi 1: abba 9382*22dc650dSSadaf Ebrahimi 2: a 9383*22dc650dSSadaf Ebrahimi abcba 9384*22dc650dSSadaf Ebrahimi 0: abcba 9385*22dc650dSSadaf Ebrahimi 1: abcba 9386*22dc650dSSadaf Ebrahimi 2: a 9387*22dc650dSSadaf Ebrahimi ababa 9388*22dc650dSSadaf Ebrahimi 0: ababa 9389*22dc650dSSadaf Ebrahimi 1: ababa 9390*22dc650dSSadaf Ebrahimi 2: a 9391*22dc650dSSadaf Ebrahimi abccba 9392*22dc650dSSadaf Ebrahimi 0: abccba 9393*22dc650dSSadaf Ebrahimi 1: abccba 9394*22dc650dSSadaf Ebrahimi 2: a 9395*22dc650dSSadaf Ebrahimi abcdcba 9396*22dc650dSSadaf Ebrahimi 0: abcdcba 9397*22dc650dSSadaf Ebrahimi 1: abcdcba 9398*22dc650dSSadaf Ebrahimi 2: a 9399*22dc650dSSadaf Ebrahimi abcddcba 9400*22dc650dSSadaf Ebrahimi 0: abcddcba 9401*22dc650dSSadaf Ebrahimi 1: abcddcba 9402*22dc650dSSadaf Ebrahimi 2: a 9403*22dc650dSSadaf Ebrahimi 9404*22dc650dSSadaf Ebrahimi/^(.)(\1|a(?2))/ 9405*22dc650dSSadaf Ebrahimi bab 9406*22dc650dSSadaf Ebrahimi 0: bab 9407*22dc650dSSadaf Ebrahimi 1: b 9408*22dc650dSSadaf Ebrahimi 2: ab 9409*22dc650dSSadaf Ebrahimi 9410*22dc650dSSadaf Ebrahimi/^(.|(.)(?1)?\2)$/ 9411*22dc650dSSadaf Ebrahimi abcba 9412*22dc650dSSadaf Ebrahimi 0: abcba 9413*22dc650dSSadaf Ebrahimi 1: abcba 9414*22dc650dSSadaf Ebrahimi 2: a 9415*22dc650dSSadaf Ebrahimi 9416*22dc650dSSadaf Ebrahimi/^(?(?=(a))abc|def)/ 9417*22dc650dSSadaf Ebrahimi abc 9418*22dc650dSSadaf Ebrahimi 0: abc 9419*22dc650dSSadaf Ebrahimi 1: a 9420*22dc650dSSadaf Ebrahimi 9421*22dc650dSSadaf Ebrahimi/^(?(?!(a))def|abc)/ 9422*22dc650dSSadaf Ebrahimi abc 9423*22dc650dSSadaf Ebrahimi 0: abc 9424*22dc650dSSadaf Ebrahimi 1: a 9425*22dc650dSSadaf Ebrahimi 9426*22dc650dSSadaf Ebrahimi/^(?(?=(a)(*ACCEPT))abc|def)/ 9427*22dc650dSSadaf Ebrahimi abc 9428*22dc650dSSadaf Ebrahimi 0: abc 9429*22dc650dSSadaf Ebrahimi 1: a 9430*22dc650dSSadaf Ebrahimi 9431*22dc650dSSadaf Ebrahimi/^(?(?!(a)(*ACCEPT))def|abc)/ 9432*22dc650dSSadaf Ebrahimi abc 9433*22dc650dSSadaf Ebrahimi 0: abc 9434*22dc650dSSadaf Ebrahimi 1: a 9435*22dc650dSSadaf Ebrahimi 9436*22dc650dSSadaf Ebrahimi/^(?1)\d{3}(a)/ 9437*22dc650dSSadaf Ebrahimi a123a 9438*22dc650dSSadaf Ebrahimi 0: a123a 9439*22dc650dSSadaf Ebrahimi 1: a 9440*22dc650dSSadaf Ebrahimi 9441*22dc650dSSadaf Ebrahimi# This pattern uses a lot of named subpatterns in order to match email 9442*22dc650dSSadaf Ebrahimi# addresses in various formats. It's a heavy test for named subpatterns. In the 9443*22dc650dSSadaf Ebrahimi# <atext> group, slash is coded as \x{2f} so that this pattern can also be 9444*22dc650dSSadaf Ebrahimi# processed by perltest.sh, which does not cater for an escaped delimiter 9445*22dc650dSSadaf Ebrahimi# within the pattern. $ within the pattern must also be escaped. All $ and @ 9446*22dc650dSSadaf Ebrahimi# characters in subject strings are escaped so that Perl doesn't interpret them 9447*22dc650dSSadaf Ebrahimi# as variable insertions and " characters must also be escaped for Perl. 9448*22dc650dSSadaf Ebrahimi 9449*22dc650dSSadaf Ebrahimi# This set of subpatterns is more or less a direct transliteration of the BNF 9450*22dc650dSSadaf Ebrahimi# definitions in RFC2822, without any of the obsolete features. The addition of 9451*22dc650dSSadaf Ebrahimi# a possessive + to the definition of <phrase> reduced the match limit in PCRE2 9452*22dc650dSSadaf Ebrahimi# from over 5 million to just under 400, and eliminated a very noticeable delay 9453*22dc650dSSadaf Ebrahimi# when this file was passed to perltest.sh. 9454*22dc650dSSadaf Ebrahimi 9455*22dc650dSSadaf Ebrahimi/(?ix)(?(DEFINE) 9456*22dc650dSSadaf Ebrahimi(?<addr_spec> (?&local_part) \@ (?&domain) ) 9457*22dc650dSSadaf Ebrahimi(?<angle_addr> (?&CFWS)?+ < (?&addr_spec) > (?&CFWS)?+ ) 9458*22dc650dSSadaf Ebrahimi(?<atext> [a-z\d!#\$%&'*+-\x{2f}=?^_`{|}~] ) 9459*22dc650dSSadaf Ebrahimi(?<atom> (?&CFWS)?+ (?&atext)+ (?&CFWS)?+ ) 9460*22dc650dSSadaf Ebrahimi(?<ccontent> (?&ctext) | (?"ed_pair) | (?&comment) ) 9461*22dc650dSSadaf Ebrahimi(?<ctext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ ()\\] ) 9462*22dc650dSSadaf Ebrahimi(?<comment> \( (?: (?&FWS)?+ (?&ccontent) )*+ (?&FWS)?+ \) ) 9463*22dc650dSSadaf Ebrahimi(?<CFWS> (?: (?&FWS)?+ (?&comment) )* (?# NOT possessive) 9464*22dc650dSSadaf Ebrahimi (?: (?&FWS)?+ (?&comment) | (?&FWS) ) ) 9465*22dc650dSSadaf Ebrahimi(?<dcontent> (?&dtext) | (?"ed_pair) ) 9466*22dc650dSSadaf Ebrahimi(?<display_name> (?&phrase) ) 9467*22dc650dSSadaf Ebrahimi(?<domain> (?&dot_atom) | (?&domain_literal) ) 9468*22dc650dSSadaf Ebrahimi(?<domain_literal> (?&CFWS)?+ \[ (?: (?&FWS)?+ (?&dcontent) )* (?&FWS)?+ \] 9469*22dc650dSSadaf Ebrahimi (?&CFWS)?+ ) 9470*22dc650dSSadaf Ebrahimi(?<dot_atom> (?&CFWS)?+ (?&dot_atom_text) (?&CFWS)?+ ) 9471*22dc650dSSadaf Ebrahimi(?<dot_atom_text> (?&atext)++ (?: \. (?&atext)++)*+ ) 9472*22dc650dSSadaf Ebrahimi(?<dtext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ \[\]\\] ) 9473*22dc650dSSadaf Ebrahimi(?<FWS> (?: [\t\ ]*+ \n)?+ [\t\ ]++ ) 9474*22dc650dSSadaf Ebrahimi(?<local_part> (?&dot_atom) | (?"ed_string) ) 9475*22dc650dSSadaf Ebrahimi(?<mailbox> (?&name_addr) | (?&addr_spec) ) 9476*22dc650dSSadaf Ebrahimi(?<name_addr> (?&display_name)? (?&angle_addr) ) 9477*22dc650dSSadaf Ebrahimi(?<phrase> (?&word)++ ) 9478*22dc650dSSadaf Ebrahimi(?<qcontent> (?&qtext) | (?"ed_pair) ) 9479*22dc650dSSadaf Ebrahimi(?<quoted_pair> " (?&text) ) 9480*22dc650dSSadaf Ebrahimi(?<quoted_string> (?&CFWS)?+ " (?: (?&FWS)?+ (?&qcontent))* (?&FWS)?+ " 9481*22dc650dSSadaf Ebrahimi (?&CFWS)?+ ) 9482*22dc650dSSadaf Ebrahimi(?<qtext> [^\x{9}\x{10}\x{13}\x{7f}-\x{ff}\ "\\] ) 9483*22dc650dSSadaf Ebrahimi(?<text> [^\r\n] ) 9484*22dc650dSSadaf Ebrahimi(?<word> (?&atom) | (?"ed_string) ) 9485*22dc650dSSadaf Ebrahimi) # End DEFINE 9486*22dc650dSSadaf Ebrahimi^(?&mailbox)$/ 9487*22dc650dSSadaf Ebrahimi Alan Other <user\@dom.ain> 9488*22dc650dSSadaf Ebrahimi 0: Alan Other <[email protected]> 9489*22dc650dSSadaf Ebrahimi <user\@dom.ain> 9490*22dc650dSSadaf Ebrahimi 0: <[email protected]> 9491*22dc650dSSadaf Ebrahimi user\@dom.ain 9492*22dc650dSSadaf Ebrahimi 0: [email protected] 9493*22dc650dSSadaf Ebrahimi user\@[] 9494*22dc650dSSadaf Ebrahimi 0: user@[] 9495*22dc650dSSadaf Ebrahimi user\@[domain literal] 9496*22dc650dSSadaf Ebrahimi 0: user@[domain literal] 9497*22dc650dSSadaf Ebrahimi user\@[domain literal with \"[square brackets\"] inside] 9498*22dc650dSSadaf Ebrahimi 0: user@[domain literal with "[square brackets"] inside] 9499*22dc650dSSadaf Ebrahimi \"A. Other\" <user.1234\@dom.ain> (a comment) 9500*22dc650dSSadaf Ebrahimi 0: "A. Other" <[email protected]> (a comment) 9501*22dc650dSSadaf Ebrahimi A. Other <user.1234\@dom.ain> (a comment) 9502*22dc650dSSadaf Ebrahimi 0: A. Other <[email protected]> (a comment) 9503*22dc650dSSadaf Ebrahimi \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 9504*22dc650dSSadaf Ebrahimi 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay 9505*22dc650dSSadaf Ebrahimi\= Expect no match 9506*22dc650dSSadaf Ebrahimi A missing angle <user\@some.where 9507*22dc650dSSadaf EbrahimiNo match 9508*22dc650dSSadaf Ebrahimi The quick brown fox 9509*22dc650dSSadaf EbrahimiNo match 9510*22dc650dSSadaf Ebrahimi 9511*22dc650dSSadaf Ebrahimi# -------------------------------------------------------------------------- 9512*22dc650dSSadaf Ebrahimi 9513*22dc650dSSadaf Ebrahimi# This pattern uses named groups to match default PCRE2 patterns. It's another 9514*22dc650dSSadaf Ebrahimi# heavy test for named subpatterns. Once again, code slash as \x{2f} and escape 9515*22dc650dSSadaf Ebrahimi# $ even in classes so that this works with pcre2test. 9516*22dc650dSSadaf Ebrahimi 9517*22dc650dSSadaf Ebrahimi/(?sx)(?(DEFINE) 9518*22dc650dSSadaf Ebrahimi 9519*22dc650dSSadaf Ebrahimi(?<assertion> (?&simple_assertion) | (?&lookaround) ) 9520*22dc650dSSadaf Ebrahimi 9521*22dc650dSSadaf Ebrahimi(?<atomic_group> \( \? > (?®ex) \) ) 9522*22dc650dSSadaf Ebrahimi 9523*22dc650dSSadaf Ebrahimi(?<back_reference> \\ \d+ | 9524*22dc650dSSadaf Ebrahimi \\g (?: [+-]?\d+ | \{ (?: [+-]?\d+ | (?&groupname) ) \} ) | 9525*22dc650dSSadaf Ebrahimi \\k <(?&groupname)> | 9526*22dc650dSSadaf Ebrahimi \\k '(?&groupname)' | 9527*22dc650dSSadaf Ebrahimi \\k \{ (?&groupname) \} | 9528*22dc650dSSadaf Ebrahimi \( \? P= (?&groupname) \) ) 9529*22dc650dSSadaf Ebrahimi 9530*22dc650dSSadaf Ebrahimi(?<branch> (?:(?&assertion) | 9531*22dc650dSSadaf Ebrahimi (?&callout) | 9532*22dc650dSSadaf Ebrahimi (?&comment) | 9533*22dc650dSSadaf Ebrahimi (?&option_setting) | 9534*22dc650dSSadaf Ebrahimi (?&qualified_item) | 9535*22dc650dSSadaf Ebrahimi (?"ed_string) | 9536*22dc650dSSadaf Ebrahimi (?"ed_string_empty) | 9537*22dc650dSSadaf Ebrahimi (?&special_escape) | 9538*22dc650dSSadaf Ebrahimi (?&verb) 9539*22dc650dSSadaf Ebrahimi )* ) 9540*22dc650dSSadaf Ebrahimi 9541*22dc650dSSadaf Ebrahimi(?<callout> \(\?C (?: \d+ | 9542*22dc650dSSadaf Ebrahimi (?: (?<D>["'`^%\#\$]) 9543*22dc650dSSadaf Ebrahimi (?: \k'D'\k'D' | (?!\k'D') . )* \k'D' | 9544*22dc650dSSadaf Ebrahimi \{ (?: \}\} | [^}]*+ )* \} ) 9545*22dc650dSSadaf Ebrahimi )? \) ) 9546*22dc650dSSadaf Ebrahimi 9547*22dc650dSSadaf Ebrahimi(?<capturing_group> \( (?: \? P? < (?&groupname) > | \? ' (?&groupname) ' )? 9548*22dc650dSSadaf Ebrahimi (?®ex) \) ) 9549*22dc650dSSadaf Ebrahimi 9550*22dc650dSSadaf Ebrahimi(?<character_class> \[ \^?+ (?: \] (?&class_item)* | (?&class_item)+ ) \] ) 9551*22dc650dSSadaf Ebrahimi 9552*22dc650dSSadaf Ebrahimi(?<character_type> (?! \\N\{\w+\} ) \\ [dDsSwWhHvVRN] ) 9553*22dc650dSSadaf Ebrahimi 9554*22dc650dSSadaf Ebrahimi(?<class_item> (?: \[ : (?: 9555*22dc650dSSadaf Ebrahimi alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print| 9556*22dc650dSSadaf Ebrahimi punct|space|upper|word|xdigit 9557*22dc650dSSadaf Ebrahimi ) : \] | 9558*22dc650dSSadaf Ebrahimi (?"ed_string) | 9559*22dc650dSSadaf Ebrahimi (?"ed_string_empty) | 9560*22dc650dSSadaf Ebrahimi (?&escaped_character) | 9561*22dc650dSSadaf Ebrahimi (?&character_type) | 9562*22dc650dSSadaf Ebrahimi [^]] ) ) 9563*22dc650dSSadaf Ebrahimi 9564*22dc650dSSadaf Ebrahimi(?<comment> \(\?\# [^)]* \) | (?"ed_string_empty) | \\E ) 9565*22dc650dSSadaf Ebrahimi 9566*22dc650dSSadaf Ebrahimi(?<condition> (?: \( [+-]? \d+ \) | 9567*22dc650dSSadaf Ebrahimi \( < (?&groupname) > \) | 9568*22dc650dSSadaf Ebrahimi \( ' (?&groupname) ' \) | 9569*22dc650dSSadaf Ebrahimi \( R \d* \) | 9570*22dc650dSSadaf Ebrahimi \( R & (?&groupname) \) | 9571*22dc650dSSadaf Ebrahimi \( (?&groupname) \) | 9572*22dc650dSSadaf Ebrahimi \( DEFINE \) | 9573*22dc650dSSadaf Ebrahimi \( VERSION >?=\d+(?:\.\d\d?)? \) | 9574*22dc650dSSadaf Ebrahimi (?&callout)?+ (?&comment)* (?&lookaround) ) ) 9575*22dc650dSSadaf Ebrahimi 9576*22dc650dSSadaf Ebrahimi(?<conditional_group> \(\? (?&condition) (?&branch) (?: \| (?&branch) )? \) ) 9577*22dc650dSSadaf Ebrahimi 9578*22dc650dSSadaf Ebrahimi(?<delimited_regex> (?<delimiter> [-\x{2f}!"'`=_:;,%&@~]) (?®ex) 9579*22dc650dSSadaf Ebrahimi \k'delimiter' .* ) 9580*22dc650dSSadaf Ebrahimi 9581*22dc650dSSadaf Ebrahimi(?<escaped_character> \\ (?: 0[0-7]{1,2} | [0-7]{1,3} | o\{ [0-7]+ \} | 9582*22dc650dSSadaf Ebrahimi x \{ (*COMMIT) [[:xdigit:]]* \} | x [[:xdigit:]]{0,2} | 9583*22dc650dSSadaf Ebrahimi [aefnrt] | c[[:print:]] | 9584*22dc650dSSadaf Ebrahimi [^[:alnum:]] ) ) 9585*22dc650dSSadaf Ebrahimi 9586*22dc650dSSadaf Ebrahimi(?<group> (?&capturing_group) | (?&non_capturing_group) | 9587*22dc650dSSadaf Ebrahimi (?&resetting_group) | (?&atomic_group) | 9588*22dc650dSSadaf Ebrahimi (?&conditional_group) ) 9589*22dc650dSSadaf Ebrahimi 9590*22dc650dSSadaf Ebrahimi(?<groupname> [a-zA-Z_]\w* ) 9591*22dc650dSSadaf Ebrahimi 9592*22dc650dSSadaf Ebrahimi(?<literal_character> (?! (?&range_qualifier) ) [^[()|*+?.\$\\] ) 9593*22dc650dSSadaf Ebrahimi 9594*22dc650dSSadaf Ebrahimi(?<lookaround> \(\? (?: = | ! | <= | <! ) (?®ex) \) ) 9595*22dc650dSSadaf Ebrahimi 9596*22dc650dSSadaf Ebrahimi(?<non_capturing_group> \(\? [iJmnsUx-]* : (?®ex) \) ) 9597*22dc650dSSadaf Ebrahimi 9598*22dc650dSSadaf Ebrahimi(?<option_setting> \(\? [iJmnsUx-]* \) ) 9599*22dc650dSSadaf Ebrahimi 9600*22dc650dSSadaf Ebrahimi(?<qualified_item> (?:\. | 9601*22dc650dSSadaf Ebrahimi (?&lookaround) | 9602*22dc650dSSadaf Ebrahimi (?&back_reference) | 9603*22dc650dSSadaf Ebrahimi (?&character_class) | 9604*22dc650dSSadaf Ebrahimi (?&character_type) | 9605*22dc650dSSadaf Ebrahimi (?&escaped_character) | 9606*22dc650dSSadaf Ebrahimi (?&group) | 9607*22dc650dSSadaf Ebrahimi (?&subroutine_call) | 9608*22dc650dSSadaf Ebrahimi (?&literal_character) | 9609*22dc650dSSadaf Ebrahimi (?"ed_string) 9610*22dc650dSSadaf Ebrahimi ) (?&comment)? (?&qualifier)? ) 9611*22dc650dSSadaf Ebrahimi 9612*22dc650dSSadaf Ebrahimi(?<qualifier> (?: [?*+] | (?&range_qualifier) ) [+?]? ) 9613*22dc650dSSadaf Ebrahimi 9614*22dc650dSSadaf Ebrahimi(?<quoted_string> (?: \\Q (?: (?!\\E | \k'delimiter') . )++ (?: \\E | ) ) ) 9615*22dc650dSSadaf Ebrahimi 9616*22dc650dSSadaf Ebrahimi(?<quoted_string_empty> \\Q\\E ) 9617*22dc650dSSadaf Ebrahimi 9618*22dc650dSSadaf Ebrahimi(?<range_qualifier> \{ (?: \d+ (?: , \d* )? | , \d+ ) \} ) 9619*22dc650dSSadaf Ebrahimi 9620*22dc650dSSadaf Ebrahimi(?<regex> (?&start_item)* (?&branch) (?: \| (?&branch) )* ) 9621*22dc650dSSadaf Ebrahimi 9622*22dc650dSSadaf Ebrahimi(?<resetting_group> \( \? \| (?®ex) \) ) 9623*22dc650dSSadaf Ebrahimi 9624*22dc650dSSadaf Ebrahimi(?<simple_assertion> \^ | \$ | \\A | \\b | \\B | \\G | \\z | \\Z ) 9625*22dc650dSSadaf Ebrahimi 9626*22dc650dSSadaf Ebrahimi(?<special_escape> \\K ) 9627*22dc650dSSadaf Ebrahimi 9628*22dc650dSSadaf Ebrahimi(?<start_item> \( \* (?: 9629*22dc650dSSadaf Ebrahimi ANY | 9630*22dc650dSSadaf Ebrahimi ANYCRLF | 9631*22dc650dSSadaf Ebrahimi BSR_ANYCRLF | 9632*22dc650dSSadaf Ebrahimi BSR_UNICODE | 9633*22dc650dSSadaf Ebrahimi CR | 9634*22dc650dSSadaf Ebrahimi CRLF | 9635*22dc650dSSadaf Ebrahimi LF | 9636*22dc650dSSadaf Ebrahimi LIMIT_MATCH=\d+ | 9637*22dc650dSSadaf Ebrahimi LIMIT_DEPTH=\d+ | 9638*22dc650dSSadaf Ebrahimi LIMIT_HEAP=\d+ | 9639*22dc650dSSadaf Ebrahimi NOTEMPTY | 9640*22dc650dSSadaf Ebrahimi NOTEMPTY_ATSTART | 9641*22dc650dSSadaf Ebrahimi NO_AUTO_POSSESS | 9642*22dc650dSSadaf Ebrahimi NO_DOTSTAR_ANCHOR | 9643*22dc650dSSadaf Ebrahimi NO_JIT | 9644*22dc650dSSadaf Ebrahimi NO_START_OPT | 9645*22dc650dSSadaf Ebrahimi NUL | 9646*22dc650dSSadaf Ebrahimi UTF | 9647*22dc650dSSadaf Ebrahimi UCP ) \) ) 9648*22dc650dSSadaf Ebrahimi 9649*22dc650dSSadaf Ebrahimi(?<subroutine_call> (?: \(\?R\) | \(\?[+-]?\d+\) | 9650*22dc650dSSadaf Ebrahimi \(\? (?: & | P> ) (?&groupname) \) | 9651*22dc650dSSadaf Ebrahimi \\g < (?&groupname) > | 9652*22dc650dSSadaf Ebrahimi \\g ' (?&groupname) ' | 9653*22dc650dSSadaf Ebrahimi \\g < [+-]? \d+ > | 9654*22dc650dSSadaf Ebrahimi \\g ' [+-]? \d+ ) ) 9655*22dc650dSSadaf Ebrahimi 9656*22dc650dSSadaf Ebrahimi(?<verb> \(\* (?: ACCEPT | FAIL | F | COMMIT | 9657*22dc650dSSadaf Ebrahimi (?:MARK)?:(?&verbname) | 9658*22dc650dSSadaf Ebrahimi (?:PRUNE|SKIP|THEN) (?: : (?&verbname)? )? ) \) ) 9659*22dc650dSSadaf Ebrahimi 9660*22dc650dSSadaf Ebrahimi(?<verbname> [^)]+ ) 9661*22dc650dSSadaf Ebrahimi 9662*22dc650dSSadaf Ebrahimi) # End DEFINE 9663*22dc650dSSadaf Ebrahimi# Kick it all off... 9664*22dc650dSSadaf Ebrahimi^(?&delimited_regex)$/subject_literal,jitstack=256 9665*22dc650dSSadaf Ebrahimi /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ 9666*22dc650dSSadaf Ebrahimi 0: /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ 9667*22dc650dSSadaf Ebrahimi /(cat(a(ract|tonic)|erpillar)) \1()2(3)/ 9668*22dc650dSSadaf Ebrahimi 0: /(cat(a(ract|tonic)|erpillar)) \1()2(3)/ 9669*22dc650dSSadaf Ebrahimi /^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]/ 9670*22dc650dSSadaf Ebrahimi 0: /^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]/ 9671*22dc650dSSadaf Ebrahimi /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ 9672*22dc650dSSadaf Ebrahimi 0: /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ 9673*22dc650dSSadaf Ebrahimi /<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 9674*22dc650dSSadaf Ebrahimi 0: /<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 9675*22dc650dSSadaf Ebrahimi /^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) / 9676*22dc650dSSadaf Ebrahimi 0: /^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) / 9677*22dc650dSSadaf Ebrahimi /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ 9678*22dc650dSSadaf Ebrahimi 0: /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ 9679*22dc650dSSadaf Ebrahimi /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ 9680*22dc650dSSadaf Ebrahimi 0: /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ 9681*22dc650dSSadaf Ebrahimi /^(\w++|\s++)*$/ 9682*22dc650dSSadaf Ebrahimi 0: /^(\w++|\s++)*$/ 9683*22dc650dSSadaf Ebrahimi /a+b?(*THEN)c+(*FAIL)/ 9684*22dc650dSSadaf Ebrahimi 0: /a+b?(*THEN)c+(*FAIL)/ 9685*22dc650dSSadaf Ebrahimi /(A (A|B(*ACCEPT)|C) D)(E)/x 9686*22dc650dSSadaf Ebrahimi 0: /(A (A|B(*ACCEPT)|C) D)(E)/x 9687*22dc650dSSadaf Ebrahimi /^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i 9688*22dc650dSSadaf Ebrahimi 0: /^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i 9689*22dc650dSSadaf Ebrahimi /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B 9690*22dc650dSSadaf Ebrahimi 0: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B 9691*22dc650dSSadaf Ebrahimi /(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info 9692*22dc650dSSadaf Ebrahimi 0: /(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info 9693*22dc650dSSadaf Ebrahimi /(?sx)(?(DEFINE)(?<assertion> (?&simple_assertion) | (?&lookaround) )(?<atomic_group> \( \? > (?®ex) \) )(?<back_reference> \\ \d+ | \\g (?: [+-]?\d+ | \{ (?: [+-]?\d+ | (?&groupname) ) \} ) | \\k <(?&groupname)> | \\k '(?&groupname)' | \\k \{ (?&groupname) \} | \( \? P= (?&groupname) \) )(?<branch> (?:(?&assertion) | (?&callout) | (?&comment) | (?&option_setting) | (?&qualified_item) | (?"ed_string) | (?"ed_string_empty) | (?&special_escape) | (?&verb) )* )(?<callout> \(\?C (?: \d+ | (?: (?<D>["'`^%\#\$]) (?: \k'D'\k'D' | (?!\k'D') . )* \k'D' | \{ (?: \}\} | [^}]*+ )* \} ) )? \) )(?<capturing_group> \( (?: \? P? < (?&groupname) > | \? ' (?&groupname) ' )? (?®ex) \) )(?<character_class> \[ \^?+ (?: \] (?&class_item)* | (?&class_item)+ ) \] )(?<character_type> (?! \\N\{\w+\} ) \\ [dDsSwWhHvVRN] )(?<class_item> (?: \[ : (?: alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print| punct|space|upper|word|xdigit ) : \] | (?"ed_string) | (?"ed_string_empty) | (?&escaped_character) | (?&character_type) | [^]] ) )(?<comment> \(\?\# [^)]* \) | (?"ed_string_empty) | \\E )(?<condition> (?: \( [+-]? \d+ \) | \( < (?&groupname) > \) | \( ' (?&groupname) ' \) | \( R \d* \) | \( R & (?&groupname) \) | \( (?&groupname) \) | \( DEFINE \) | \( VERSION >?=\d+(?:\.\d\d?)? \) | (?&callout)?+ (?&comment)* (?&lookaround) ) )(?<conditional_group> \(\? (?&condition) (?&branch) (?: \| (?&branch) )? \) )(?<delimited_regex> (?<delimiter> [-\x{2f}!"'`=_:;,%&@~]) (?®ex) \k'delimiter' .* )(?<escaped_character> \\ (?: 0[0-7]{1,2} | [0-7]{1,3} | o\{ [0-7]+ \} | x \{ (*COMMIT) [[:xdigit:]]* \} | x [[:xdigit:]]{0,2} | [aefnrt] | c[[:print:]] | [^[:alnum:]] ) )(?<group> (?&capturing_group) | (?&non_capturing_group) | (?&resetting_group) | (?&atomic_group) | (?&conditional_group) )(?<groupname> [a-zA-Z_]\w* )(?<literal_character> (?! (?&range_qualifier) ) [^[()|*+?.\$\\] )(?<lookaround> \(\? (?: = | ! | <= | <! ) (?®ex) \) )(?<non_capturing_group> \(\? [iJmnsUx-]* : (?®ex) \) )(?<option_setting> \(\? [iJmnsUx-]* \) )(?<qualified_item> (?:\. | (?&lookaround) | (?&back_reference) | (?&character_class) | (?&character_type) | (?&escaped_character) | (?&group) | (?&subroutine_call) | (?&literal_character) | (?"ed_string) ) (?&comment)? (?&qualifier)? )(?<qualifier> (?: [?*+] | (?&range_qualifier) ) [+?]? )(?<quoted_string> (?: \\Q (?: (?!\\E | \k'delimiter') . )++ (?: \\E | ) ) ) (?<quoted_string_empty> \\Q\\E ) (?<range_qualifier> \{ (?: \d+ (?: , \d* )? | , \d+ ) \} )(?<regex> (?&start_item)* (?&branch) (?: \| (?&branch) )* )(?<resetting_group> \( \? \| (?®ex) \) )(?<simple_assertion> \^ | \$ | \\A | \\b | \\B | \\G | \\z | \\Z )(?<special_escape> \\K )(?<start_item> \( \* (?: ANY | ANYCRLF | BSR_ANYCRLF | BSR_UNICODE | CR | CRLF | LF | LIMIT_MATCH=\d+ | LIMIT_DEPTH=\d+ | LIMIT_HEAP=\d+ | NOTEMPTY | NOTEMPTY_ATSTART | NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR | NO_JIT | NO_START_OPT | NUL | UTF | UCP ) \) )(?<subroutine_call> (?: \(\?R\) | \(\?[+-]?\d+\) | \(\? (?: & | P> ) (?&groupname) \) | \\g < (?&groupname) > | \\g ' (?&groupname) ' | \\g < [+-]? \d+ > | \\g ' [+-]? \d+ ) )(?<verb> \(\* (?: ACCEPT | FAIL | F | COMMIT | (?:MARK)?:(?&verbname) | (?:PRUNE|SKIP|THEN) (?: : (?&verbname)? )? ) \) )(?<verbname> [^)]+ ))^(?&delimited_regex)$/ 9694*22dc650dSSadaf Ebrahimi 0: /(?sx)(?(DEFINE)(?<assertion> (?&simple_assertion) | (?&lookaround) )(?<atomic_group> \( \? > (?®ex) \) )(?<back_reference> \\ \d+ | \\g (?: [+-]?\d+ | \{ (?: [+-]?\d+ | (?&groupname) ) \} ) | \\k <(?&groupname)> | \\k '(?&groupname)' | \\k \{ (?&groupname) \} | \( \? P= (?&groupname) \) )(?<branch> (?:(?&assertion) | (?&callout) | (?&comment) | (?&option_setting) | (?&qualified_item) | (?"ed_string) | (?"ed_string_empty) | (?&special_escape) | (?&verb) )* )(?<callout> \(\?C (?: \d+ | (?: (?<D>["'`^%\#\$]) (?: \k'D'\k'D' | (?!\k'D') . )* \k'D' | \{ (?: \}\} | [^}]*+ )* \} ) )? \) )(?<capturing_group> \( (?: \? P? < (?&groupname) > | \? ' (?&groupname) ' )? (?®ex) \) )(?<character_class> \[ \^?+ (?: \] (?&class_item)* | (?&class_item)+ ) \] )(?<character_type> (?! \\N\{\w+\} ) \\ [dDsSwWhHvVRN] )(?<class_item> (?: \[ : (?: alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print| punct|space|upper|word|xdigit ) : \] | (?"ed_string) | (?"ed_string_empty) | (?&escaped_character) | (?&character_type) | [^]] ) )(?<comment> \(\?\# [^)]* \) | (?"ed_string_empty) | \\E )(?<condition> (?: \( [+-]? \d+ \) | \( < (?&groupname) > \) | \( ' (?&groupname) ' \) | \( R \d* \) | \( R & (?&groupname) \) | \( (?&groupname) \) | \( DEFINE \) | \( VERSION >?=\d+(?:\.\d\d?)? \) | (?&callout)?+ (?&comment)* (?&lookaround) ) )(?<conditional_group> \(\? (?&condition) (?&branch) (?: \| (?&branch) )? \) )(?<delimited_regex> (?<delimiter> [-\x{2f}!"'`=_:;,%&@~]) (?®ex) \k'delimiter' .* )(?<escaped_character> \\ (?: 0[0-7]{1,2} | [0-7]{1,3} | o\{ [0-7]+ \} | x \{ (*COMMIT) [[:xdigit:]]* \} | x [[:xdigit:]]{0,2} | [aefnrt] | c[[:print:]] | [^[:alnum:]] ) )(?<group> (?&capturing_group) | (?&non_capturing_group) | (?&resetting_group) | (?&atomic_group) | (?&conditional_group) )(?<groupname> [a-zA-Z_]\w* )(?<literal_character> (?! (?&range_qualifier) ) [^[()|*+?.\$\\] )(?<lookaround> \(\? (?: = | ! | <= | <! ) (?®ex) \) )(?<non_capturing_group> \(\? [iJmnsUx-]* : (?®ex) \) )(?<option_setting> \(\? [iJmnsUx-]* \) )(?<qualified_item> (?:\. | (?&lookaround) | (?&back_reference) | (?&character_class) | (?&character_type) | (?&escaped_character) | (?&group) | (?&subroutine_call) | (?&literal_character) | (?"ed_string) ) (?&comment)? (?&qualifier)? )(?<qualifier> (?: [?*+] | (?&range_qualifier) ) [+?]? )(?<quoted_string> (?: \\Q (?: (?!\\E | \k'delimiter') . )++ (?: \\E | ) ) ) (?<quoted_string_empty> \\Q\\E ) (?<range_qualifier> \{ (?: \d+ (?: , \d* )? | , \d+ ) \} )(?<regex> (?&start_item)* (?&branch) (?: \| (?&branch) )* )(?<resetting_group> \( \? \| (?®ex) \) )(?<simple_assertion> \^ | \$ | \\A | \\b | \\B | \\G | \\z | \\Z )(?<special_escape> \\K )(?<start_item> \( \* (?: ANY | ANYCRLF | BSR_ANYCRLF | BSR_UNICODE | CR | CRLF | LF | LIMIT_MATCH=\d+ | LIMIT_DEPTH=\d+ | LIMIT_HEAP=\d+ | NOTEMPTY | NOTEMPTY_ATSTART | NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR | NO_JIT | NO_START_OPT | NUL | UTF | UCP ) \) )(?<subroutine_call> (?: \(\?R\) | \(\?[+-]?\d+\) | \(\? (?: & | P> ) (?&groupname) \) | \\g < (?&groupname) > | \\g ' (?&groupname) ' | \\g < [+-]? \d+ > | \\g ' [+-]? \d+ ) )(?<verb> \(\* (?: ACCEPT | FAIL | F | COMMIT | (?:MARK)?:(?&verbname) | (?:PRUNE|SKIP|THEN) (?: : (?&verbname)? )? ) \) )(?<verbname> [^)]+ ))^(?&delimited_regex)$/ 9695*22dc650dSSadaf Ebrahimi\= Expect no match 9696*22dc650dSSadaf Ebrahimi /((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ 9697*22dc650dSSadaf EbrahimiNo match 9698*22dc650dSSadaf Ebrahimi /(?:(?(2y)a|b)(X))+/ 9699*22dc650dSSadaf EbrahimiNo match 9700*22dc650dSSadaf Ebrahimi /a(*MARK)b/ 9701*22dc650dSSadaf EbrahimiNo match 9702*22dc650dSSadaf Ebrahimi /a(*CR)b/ 9703*22dc650dSSadaf EbrahimiNo match 9704*22dc650dSSadaf Ebrahimi /(?P<abn>(?P=abn)(?<badstufxxx)/ 9705*22dc650dSSadaf EbrahimiNo match 9706*22dc650dSSadaf Ebrahimi 9707*22dc650dSSadaf Ebrahimi# -------------------------------------------------------------------------- 9708*22dc650dSSadaf Ebrahimi 9709*22dc650dSSadaf Ebrahimi/<(?x:[a b])>/xx 9710*22dc650dSSadaf Ebrahimi < > 9711*22dc650dSSadaf Ebrahimi 0: < > 9712*22dc650dSSadaf Ebrahimi 9713*22dc650dSSadaf Ebrahimi/<(?:[a b])>/xx 9714*22dc650dSSadaf Ebrahimi < > 9715*22dc650dSSadaf EbrahimiNo match 9716*22dc650dSSadaf Ebrahimi 9717*22dc650dSSadaf Ebrahimi/<(?xxx:[a b])>/ 9718*22dc650dSSadaf Ebrahimi < > 9719*22dc650dSSadaf EbrahimiNo match 9720*22dc650dSSadaf Ebrahimi 9721*22dc650dSSadaf Ebrahimi/<(?-x:[a b])>/xx 9722*22dc650dSSadaf Ebrahimi < > 9723*22dc650dSSadaf Ebrahimi 0: < > 9724*22dc650dSSadaf Ebrahimi 9725*22dc650dSSadaf Ebrahimi/[[:digit:]-]+/ 9726*22dc650dSSadaf Ebrahimi 12-24 9727*22dc650dSSadaf Ebrahimi 0: 12-24 9728*22dc650dSSadaf Ebrahimi 9729*22dc650dSSadaf Ebrahimi/((?<=((*ACCEPT)) )\1?\b) / 9730*22dc650dSSadaf Ebrahimi\= Expect no match 9731*22dc650dSSadaf Ebrahimi ((?<=((*ACCEPT)) )\\1?\\b)\x20 9732*22dc650dSSadaf EbrahimiNo match 9733*22dc650dSSadaf Ebrahimi 9734*22dc650dSSadaf Ebrahimi/((?<=((*ACCEPT))X)\1?Y)\1/ 9735*22dc650dSSadaf Ebrahimi XYYZ 9736*22dc650dSSadaf Ebrahimi 0: YY 9737*22dc650dSSadaf Ebrahimi 1: Y 9738*22dc650dSSadaf Ebrahimi 2: 9739*22dc650dSSadaf Ebrahimi 9740*22dc650dSSadaf Ebrahimi/((?<=((*ACCEPT))X)\1?Y(*ACCEPT))\1/ 9741*22dc650dSSadaf Ebrahimi XYYZ 9742*22dc650dSSadaf Ebrahimi 0: Y 9743*22dc650dSSadaf Ebrahimi 1: Y 9744*22dc650dSSadaf Ebrahimi 2: 9745*22dc650dSSadaf Ebrahimi 9746*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/ 9747*22dc650dSSadaf Ebrahimi aa 9748*22dc650dSSadaf Ebrahimi 0: aa 9749*22dc650dSSadaf Ebrahimi a 9750*22dc650dSSadaf Ebrahimi 0: a 9751*22dc650dSSadaf Ebrahimi 9752*22dc650dSSadaf Ebrahimi/^(a?)b(?1)a/ 9753*22dc650dSSadaf Ebrahimi abaa 9754*22dc650dSSadaf Ebrahimi 0: abaa 9755*22dc650dSSadaf Ebrahimi 1: a 9756*22dc650dSSadaf Ebrahimi aba 9757*22dc650dSSadaf Ebrahimi 0: aba 9758*22dc650dSSadaf Ebrahimi 1: a 9759*22dc650dSSadaf Ebrahimi baa 9760*22dc650dSSadaf Ebrahimi 0: baa 9761*22dc650dSSadaf Ebrahimi 1: 9762*22dc650dSSadaf Ebrahimi ba 9763*22dc650dSSadaf Ebrahimi 0: ba 9764*22dc650dSSadaf Ebrahimi 1: 9765*22dc650dSSadaf Ebrahimi 9766*22dc650dSSadaf Ebrahimi/^(a?)+b(?1)a/ 9767*22dc650dSSadaf Ebrahimi abaa 9768*22dc650dSSadaf Ebrahimi 0: abaa 9769*22dc650dSSadaf Ebrahimi 1: 9770*22dc650dSSadaf Ebrahimi aba 9771*22dc650dSSadaf Ebrahimi 0: aba 9772*22dc650dSSadaf Ebrahimi 1: 9773*22dc650dSSadaf Ebrahimi baa 9774*22dc650dSSadaf Ebrahimi 0: baa 9775*22dc650dSSadaf Ebrahimi 1: 9776*22dc650dSSadaf Ebrahimi ba 9777*22dc650dSSadaf Ebrahimi 0: ba 9778*22dc650dSSadaf Ebrahimi 1: 9779*22dc650dSSadaf Ebrahimi 9780*22dc650dSSadaf Ebrahimi/^(a?)++b(?1)a/ 9781*22dc650dSSadaf Ebrahimi abaa 9782*22dc650dSSadaf Ebrahimi 0: abaa 9783*22dc650dSSadaf Ebrahimi 1: 9784*22dc650dSSadaf Ebrahimi aba 9785*22dc650dSSadaf Ebrahimi 0: aba 9786*22dc650dSSadaf Ebrahimi 1: 9787*22dc650dSSadaf Ebrahimi baa 9788*22dc650dSSadaf Ebrahimi 0: baa 9789*22dc650dSSadaf Ebrahimi 1: 9790*22dc650dSSadaf Ebrahimi ba 9791*22dc650dSSadaf Ebrahimi 0: ba 9792*22dc650dSSadaf Ebrahimi 1: 9793*22dc650dSSadaf Ebrahimi 9794*22dc650dSSadaf Ebrahimi/^(a?)+b/ 9795*22dc650dSSadaf Ebrahimi b 9796*22dc650dSSadaf Ebrahimi 0: b 9797*22dc650dSSadaf Ebrahimi 1: 9798*22dc650dSSadaf Ebrahimi ab 9799*22dc650dSSadaf Ebrahimi 0: ab 9800*22dc650dSSadaf Ebrahimi 1: 9801*22dc650dSSadaf Ebrahimi aaab 9802*22dc650dSSadaf Ebrahimi 0: aaab 9803*22dc650dSSadaf Ebrahimi 1: 9804*22dc650dSSadaf Ebrahimi 9805*22dc650dSSadaf Ebrahimi/(?=a+)a(a+)++b/ 9806*22dc650dSSadaf Ebrahimi aab 9807*22dc650dSSadaf Ebrahimi 0: aab 9808*22dc650dSSadaf Ebrahimi 1: a 9809*22dc650dSSadaf Ebrahimi 9810*22dc650dSSadaf Ebrahimi/(?<=\G.)/g,aftertext 9811*22dc650dSSadaf Ebrahimi abc 9812*22dc650dSSadaf Ebrahimi 0: 9813*22dc650dSSadaf Ebrahimi 0+ bc 9814*22dc650dSSadaf Ebrahimi 0: 9815*22dc650dSSadaf Ebrahimi 0+ c 9816*22dc650dSSadaf Ebrahimi 0: 9817*22dc650dSSadaf Ebrahimi 0+ 9818*22dc650dSSadaf Ebrahimi 9819*22dc650dSSadaf Ebrahimi/(?<=(?=.)?)/ 9820*22dc650dSSadaf Ebrahimi 9821*22dc650dSSadaf Ebrahimi/(?<=(?=.)?+)/ 9822*22dc650dSSadaf Ebrahimi 9823*22dc650dSSadaf Ebrahimi/(?<=(?=.)*)/ 9824*22dc650dSSadaf Ebrahimi 9825*22dc650dSSadaf Ebrahimi/(?<=(?=.){4,5})/ 9826*22dc650dSSadaf Ebrahimi 9827*22dc650dSSadaf Ebrahimi/(?<=(?=.){4,5}x)/ 9828*22dc650dSSadaf Ebrahimi 9829*22dc650dSSadaf Ebrahimi/a(?=.(*:X))(*SKIP:X)(*F)|(.)/ 9830*22dc650dSSadaf Ebrahimi abc 9831*22dc650dSSadaf Ebrahimi 0: a 9832*22dc650dSSadaf Ebrahimi 1: a 9833*22dc650dSSadaf Ebrahimi 9834*22dc650dSSadaf Ebrahimi/a(?>(*:X))(*SKIP:X)(*F)|(.)/ 9835*22dc650dSSadaf Ebrahimi abc 9836*22dc650dSSadaf Ebrahimi 0: a 9837*22dc650dSSadaf Ebrahimi 1: a 9838*22dc650dSSadaf Ebrahimi 9839*22dc650dSSadaf Ebrahimi/a(?:(*:X))(*SKIP:X)(*F)|(.)/ 9840*22dc650dSSadaf Ebrahimi abc 9841*22dc650dSSadaf Ebrahimi 0: b 9842*22dc650dSSadaf Ebrahimi 1: b 9843*22dc650dSSadaf Ebrahimi 9844*22dc650dSSadaf Ebrahimi#pattern no_start_optimize 9845*22dc650dSSadaf Ebrahimi 9846*22dc650dSSadaf Ebrahimi/(?>a(*:1))(?>b(*:1))(*SKIP:1)x|.*/ 9847*22dc650dSSadaf Ebrahimi abc 9848*22dc650dSSadaf Ebrahimi 0: abc 9849*22dc650dSSadaf Ebrahimi 9850*22dc650dSSadaf Ebrahimi/(?>a(*:1))(?>b)(*SKIP:1)x|.*/ 9851*22dc650dSSadaf Ebrahimi abc 9852*22dc650dSSadaf Ebrahimi 0: abc 9853*22dc650dSSadaf Ebrahimi 9854*22dc650dSSadaf Ebrahimi#subject mark 9855*22dc650dSSadaf Ebrahimi 9856*22dc650dSSadaf Ebrahimi/a(*ACCEPT:X)b/ 9857*22dc650dSSadaf Ebrahimi abc 9858*22dc650dSSadaf Ebrahimi 0: a 9859*22dc650dSSadaf EbrahimiMK: X 9860*22dc650dSSadaf Ebrahimi 9861*22dc650dSSadaf Ebrahimi/(?=a(*ACCEPT:QQ)bc)axyz/ 9862*22dc650dSSadaf Ebrahimi axyz 9863*22dc650dSSadaf Ebrahimi 0: axyz 9864*22dc650dSSadaf EbrahimiMK: QQ 9865*22dc650dSSadaf Ebrahimi 9866*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a(*ACCEPT:X)))(?1)b/ 9867*22dc650dSSadaf Ebrahimi abc 9868*22dc650dSSadaf Ebrahimi 0: ab 9869*22dc650dSSadaf EbrahimiMK: X 9870*22dc650dSSadaf Ebrahimi 9871*22dc650dSSadaf Ebrahimi/a(*F:X)b/ 9872*22dc650dSSadaf Ebrahimi abc 9873*22dc650dSSadaf EbrahimiNo match, mark = X 9874*22dc650dSSadaf Ebrahimi 9875*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a(*F:X)))(?1)b/ 9876*22dc650dSSadaf Ebrahimi abc 9877*22dc650dSSadaf EbrahimiNo match, mark = X 9878*22dc650dSSadaf Ebrahimi 9879*22dc650dSSadaf Ebrahimi/a(*COMMIT:X)b/ 9880*22dc650dSSadaf Ebrahimi abc 9881*22dc650dSSadaf Ebrahimi 0: ab 9882*22dc650dSSadaf EbrahimiMK: X 9883*22dc650dSSadaf Ebrahimi 9884*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a(*COMMIT:X)))(?1)b/ 9885*22dc650dSSadaf Ebrahimi abc 9886*22dc650dSSadaf Ebrahimi 0: ab 9887*22dc650dSSadaf EbrahimiMK: X 9888*22dc650dSSadaf Ebrahimi 9889*22dc650dSSadaf Ebrahimi/a+(*:Z)b(*COMMIT:X)(*SKIP:Z)c|.*/ 9890*22dc650dSSadaf Ebrahimi aaaabd 9891*22dc650dSSadaf Ebrahimi 0: bd 9892*22dc650dSSadaf Ebrahimi 9893*22dc650dSSadaf Ebrahimi/a+(*:Z)b(*COMMIT:X)(*SKIP:X)c|.*/ 9894*22dc650dSSadaf Ebrahimi aaaabd 9895*22dc650dSSadaf EbrahimiNo match, mark = X 9896*22dc650dSSadaf Ebrahimi 9897*22dc650dSSadaf Ebrahimi/a(*COMMIT:X)b/ 9898*22dc650dSSadaf Ebrahimi axabc 9899*22dc650dSSadaf EbrahimiNo match, mark = X 9900*22dc650dSSadaf Ebrahimi 9901*22dc650dSSadaf Ebrahimi#pattern -no_start_optimize 9902*22dc650dSSadaf Ebrahimi#subject -mark 9903*22dc650dSSadaf Ebrahimi 9904*22dc650dSSadaf Ebrahimi/(.COMMIT)(*COMMIT::::::::::interal error:::)/ 9905*22dc650dSSadaf Ebrahimi 9906*22dc650dSSadaf Ebrahimi/(*COMMIT:��)/ 9907*22dc650dSSadaf Ebrahimi 9908*22dc650dSSadaf Ebrahimi/(*COMMIT:]w)/ 9909*22dc650dSSadaf Ebrahimi 9910*22dc650dSSadaf Ebrahimi/(?i)A(?^)B(?^x:C D)(?^i)e f/ 9911*22dc650dSSadaf Ebrahimi aBCDE F 9912*22dc650dSSadaf Ebrahimi 0: aBCDE F 9913*22dc650dSSadaf Ebrahimi\= Expect no match 9914*22dc650dSSadaf Ebrahimi aBCDEF 9915*22dc650dSSadaf EbrahimiNo match 9916*22dc650dSSadaf Ebrahimi AbCDe f 9917*22dc650dSSadaf EbrahimiNo match 9918*22dc650dSSadaf Ebrahimi 9919*22dc650dSSadaf Ebrahimi/(*pla:foo).{6}/ 9920*22dc650dSSadaf Ebrahimi abcfoobarxyz 9921*22dc650dSSadaf Ebrahimi 0: foobar 9922*22dc650dSSadaf Ebrahimi\= Expect no match 9923*22dc650dSSadaf Ebrahimi abcfooba 9924*22dc650dSSadaf EbrahimiNo match 9925*22dc650dSSadaf Ebrahimi 9926*22dc650dSSadaf Ebrahimi/(*positive_lookahead:foo).{6}/ 9927*22dc650dSSadaf Ebrahimi abcfoobarxyz 9928*22dc650dSSadaf Ebrahimi 0: foobar 9929*22dc650dSSadaf Ebrahimi 9930*22dc650dSSadaf Ebrahimi/(?(*pla:foo).{6}|a..)/ 9931*22dc650dSSadaf Ebrahimi foobarbaz 9932*22dc650dSSadaf Ebrahimi 0: foobar 9933*22dc650dSSadaf Ebrahimi abcfoobar 9934*22dc650dSSadaf Ebrahimi 0: abc 9935*22dc650dSSadaf Ebrahimi 9936*22dc650dSSadaf Ebrahimi/(?(*positive_lookahead:foo).{6}|a..)/ 9937*22dc650dSSadaf Ebrahimi foobarbaz 9938*22dc650dSSadaf Ebrahimi 0: foobar 9939*22dc650dSSadaf Ebrahimi abcfoobar 9940*22dc650dSSadaf Ebrahimi 0: abc 9941*22dc650dSSadaf Ebrahimi 9942*22dc650dSSadaf Ebrahimi/(*plb:foo)bar/ 9943*22dc650dSSadaf Ebrahimi abcfoobar 9944*22dc650dSSadaf Ebrahimi 0: bar 9945*22dc650dSSadaf Ebrahimi\= Expect no match 9946*22dc650dSSadaf Ebrahimi abcbarfoo 9947*22dc650dSSadaf EbrahimiNo match 9948*22dc650dSSadaf Ebrahimi 9949*22dc650dSSadaf Ebrahimi/(*positive_lookbehind:foo)bar/ 9950*22dc650dSSadaf Ebrahimi abcfoobar 9951*22dc650dSSadaf Ebrahimi 0: bar 9952*22dc650dSSadaf Ebrahimi\= Expect no match 9953*22dc650dSSadaf Ebrahimi abcbarfoo 9954*22dc650dSSadaf EbrahimiNo match 9955*22dc650dSSadaf Ebrahimi 9956*22dc650dSSadaf Ebrahimi/(?(*plb:foo)bar|baz)/ 9957*22dc650dSSadaf Ebrahimi abcfoobar 9958*22dc650dSSadaf Ebrahimi 0: bar 9959*22dc650dSSadaf Ebrahimi bazfoobar 9960*22dc650dSSadaf Ebrahimi 0: baz 9961*22dc650dSSadaf Ebrahimi abcbazfoobar 9962*22dc650dSSadaf Ebrahimi 0: baz 9963*22dc650dSSadaf Ebrahimi foobazfoobar 9964*22dc650dSSadaf Ebrahimi 0: bar 9965*22dc650dSSadaf Ebrahimi 9966*22dc650dSSadaf Ebrahimi/(?(*positive_lookbehind:foo)bar|baz)/ 9967*22dc650dSSadaf Ebrahimi abcfoobar 9968*22dc650dSSadaf Ebrahimi 0: bar 9969*22dc650dSSadaf Ebrahimi bazfoobar 9970*22dc650dSSadaf Ebrahimi 0: baz 9971*22dc650dSSadaf Ebrahimi abcbazfoobar 9972*22dc650dSSadaf Ebrahimi 0: baz 9973*22dc650dSSadaf Ebrahimi foobazfoobar 9974*22dc650dSSadaf Ebrahimi 0: bar 9975*22dc650dSSadaf Ebrahimi 9976*22dc650dSSadaf Ebrahimi/(*nlb:foo)bar/ 9977*22dc650dSSadaf Ebrahimi abcbarfoo 9978*22dc650dSSadaf Ebrahimi 0: bar 9979*22dc650dSSadaf Ebrahimi\= Expect no match 9980*22dc650dSSadaf Ebrahimi abcfoobar 9981*22dc650dSSadaf EbrahimiNo match 9982*22dc650dSSadaf Ebrahimi 9983*22dc650dSSadaf Ebrahimi/(*negative_lookbehind:foo)bar/ 9984*22dc650dSSadaf Ebrahimi abcbarfoo 9985*22dc650dSSadaf Ebrahimi 0: bar 9986*22dc650dSSadaf Ebrahimi\= Expect no match 9987*22dc650dSSadaf Ebrahimi abcfoobar 9988*22dc650dSSadaf EbrahimiNo match 9989*22dc650dSSadaf Ebrahimi 9990*22dc650dSSadaf Ebrahimi/(?(*nlb:foo)bar|baz)/ 9991*22dc650dSSadaf Ebrahimi abcfoobaz 9992*22dc650dSSadaf Ebrahimi 0: baz 9993*22dc650dSSadaf Ebrahimi abcbarbaz 9994*22dc650dSSadaf Ebrahimi 0: bar 9995*22dc650dSSadaf Ebrahimi\= Expect no match 9996*22dc650dSSadaf Ebrahimi abcfoobar 9997*22dc650dSSadaf EbrahimiNo match 9998*22dc650dSSadaf Ebrahimi 9999*22dc650dSSadaf Ebrahimi/(?(*negative_lookbehind:foo)bar|baz)/ 10000*22dc650dSSadaf Ebrahimi abcfoobaz 10001*22dc650dSSadaf Ebrahimi 0: baz 10002*22dc650dSSadaf Ebrahimi abcbarbaz 10003*22dc650dSSadaf Ebrahimi 0: bar 10004*22dc650dSSadaf Ebrahimi\= Expect no match 10005*22dc650dSSadaf Ebrahimi abcfoobar 10006*22dc650dSSadaf EbrahimiNo match 10007*22dc650dSSadaf Ebrahimi 10008*22dc650dSSadaf Ebrahimi/(*atomic:a+)\w/ 10009*22dc650dSSadaf Ebrahimi aaab 10010*22dc650dSSadaf Ebrahimi 0: aaab 10011*22dc650dSSadaf Ebrahimi\= Expect no match 10012*22dc650dSSadaf Ebrahimi aaaa 10013*22dc650dSSadaf EbrahimiNo match 10014*22dc650dSSadaf Ebrahimi 10015*22dc650dSSadaf Ebrahimi/ (?<word> \w+ )* \. /xi 10016*22dc650dSSadaf Ebrahimi pokus. 10017*22dc650dSSadaf Ebrahimi 0: pokus. 10018*22dc650dSSadaf Ebrahimi 1: pokus 10019*22dc650dSSadaf Ebrahimi 10020*22dc650dSSadaf Ebrahimi/(?(DEFINE) (?<word> \w+ ) ) (?&word)* \./xi 10021*22dc650dSSadaf Ebrahimi pokus. 10022*22dc650dSSadaf Ebrahimi 0: pokus. 10023*22dc650dSSadaf Ebrahimi 10024*22dc650dSSadaf Ebrahimi/(?(DEFINE) (?<word> \w+ ) ) ( (?&word)* ) \./xi 10025*22dc650dSSadaf Ebrahimi pokus. 10026*22dc650dSSadaf Ebrahimi 0: pokus. 10027*22dc650dSSadaf Ebrahimi 1: <unset> 10028*22dc650dSSadaf Ebrahimi 2: pokus 10029*22dc650dSSadaf Ebrahimi 10030*22dc650dSSadaf Ebrahimi/(?&word)* (?(DEFINE) (?<word> \w+ ) ) \./xi 10031*22dc650dSSadaf Ebrahimi pokus. 10032*22dc650dSSadaf Ebrahimi 0: pokus. 10033*22dc650dSSadaf Ebrahimi 10034*22dc650dSSadaf Ebrahimi/(?&word)* \. (?<word> \w+ )/xi 10035*22dc650dSSadaf Ebrahimi pokus.hokus 10036*22dc650dSSadaf Ebrahimi 0: pokus.hokus 10037*22dc650dSSadaf Ebrahimi 1: hokus 10038*22dc650dSSadaf Ebrahimi 10039*22dc650dSSadaf Ebrahimi/a(?(?=(*:2)b).)/mark 10040*22dc650dSSadaf Ebrahimi abc 10041*22dc650dSSadaf Ebrahimi 0: ab 10042*22dc650dSSadaf EbrahimiMK: 2 10043*22dc650dSSadaf Ebrahimi acb 10044*22dc650dSSadaf Ebrahimi 0: a 10045*22dc650dSSadaf Ebrahimi 10046*22dc650dSSadaf Ebrahimi/a(?(?!(*:2)b).)/mark 10047*22dc650dSSadaf Ebrahimi acb 10048*22dc650dSSadaf Ebrahimi 0: ac 10049*22dc650dSSadaf Ebrahimi abc 10050*22dc650dSSadaf Ebrahimi 0: a 10051*22dc650dSSadaf EbrahimiMK: 2 10052*22dc650dSSadaf Ebrahimi 10053*22dc650dSSadaf Ebrahimi/(?:a|ab){1}+c/ 10054*22dc650dSSadaf Ebrahimi\= Expect no match 10055*22dc650dSSadaf Ebrahimi abc 10056*22dc650dSSadaf EbrahimiNo match 10057*22dc650dSSadaf Ebrahimi 10058*22dc650dSSadaf Ebrahimi/(a|ab){1}+c/ 10059*22dc650dSSadaf Ebrahimi abc 10060*22dc650dSSadaf EbrahimiNo match 10061*22dc650dSSadaf Ebrahimi 10062*22dc650dSSadaf Ebrahimi/(a+){1}+a/ 10063*22dc650dSSadaf Ebrahimi\= Expect no match 10064*22dc650dSSadaf Ebrahimi aaaa 10065*22dc650dSSadaf EbrahimiNo match 10066*22dc650dSSadaf Ebrahimi 10067*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a|ab))(?1){1}+c/ 10068*22dc650dSSadaf Ebrahimi abc 10069*22dc650dSSadaf EbrahimiNo match 10070*22dc650dSSadaf Ebrahimi 10071*22dc650dSSadaf Ebrahimi/(?:a|(?=b)|.)*\z/ 10072*22dc650dSSadaf Ebrahimi abc 10073*22dc650dSSadaf Ebrahimi 0: abc 10074*22dc650dSSadaf Ebrahimi 10075*22dc650dSSadaf Ebrahimi/(?:a|(?=b)|.)*/ 10076*22dc650dSSadaf Ebrahimi abc 10077*22dc650dSSadaf Ebrahimi 0: a 10078*22dc650dSSadaf Ebrahimi 10079*22dc650dSSadaf Ebrahimi/(?<=a(*SKIP)x)|c/ 10080*22dc650dSSadaf Ebrahimi abcd 10081*22dc650dSSadaf EbrahimiNo match 10082*22dc650dSSadaf Ebrahimi 10083*22dc650dSSadaf Ebrahimi/(?<=a(*SKIP)x)|d/ 10084*22dc650dSSadaf Ebrahimi abcd 10085*22dc650dSSadaf Ebrahimi 0: d 10086*22dc650dSSadaf Ebrahimi 10087*22dc650dSSadaf Ebrahimi/(?<=(?=.(?<=x)))/aftertext 10088*22dc650dSSadaf Ebrahimi abx 10089*22dc650dSSadaf Ebrahimi 0: 10090*22dc650dSSadaf Ebrahimi 0+ x 10091*22dc650dSSadaf Ebrahimi 10092*22dc650dSSadaf Ebrahimi/(?<=(?=(?<=a)))b/ 10093*22dc650dSSadaf Ebrahimi ab 10094*22dc650dSSadaf Ebrahimi 0: b 10095*22dc650dSSadaf Ebrahimi 10096*22dc650dSSadaf Ebrahimi/^(?<A>a)(?(<A>)b)((?<=b).*)$/ 10097*22dc650dSSadaf Ebrahimi abc 10098*22dc650dSSadaf Ebrahimi 0: abc 10099*22dc650dSSadaf Ebrahimi 1: a 10100*22dc650dSSadaf Ebrahimi 2: c 10101*22dc650dSSadaf Ebrahimi 10102*22dc650dSSadaf Ebrahimi/^(a\1?){4}$/ 10103*22dc650dSSadaf Ebrahimi aaaa 10104*22dc650dSSadaf Ebrahimi 0: aaaa 10105*22dc650dSSadaf Ebrahimi 1: a 10106*22dc650dSSadaf Ebrahimi aaaaaa 10107*22dc650dSSadaf Ebrahimi 0: aaaaaa 10108*22dc650dSSadaf Ebrahimi 1: aa 10109*22dc650dSSadaf Ebrahimi 10110*22dc650dSSadaf Ebrahimi/^((\1+)|\d)+133X$/ 10111*22dc650dSSadaf Ebrahimi 111133X 10112*22dc650dSSadaf Ebrahimi 0: 111133X 10113*22dc650dSSadaf Ebrahimi 1: 11 10114*22dc650dSSadaf Ebrahimi 2: 11 10115*22dc650dSSadaf Ebrahimi 10116*22dc650dSSadaf Ebrahimi/^(?>.*?([A-Z])(?!.*\1)){26}/i 10117*22dc650dSSadaf Ebrahimi The quick brown fox jumps over the lazy dog. 10118*22dc650dSSadaf Ebrahimi 0: The quick brown fox jumps over the lazy dog 10119*22dc650dSSadaf Ebrahimi 1: g 10120*22dc650dSSadaf Ebrahimi Jackdaws love my big sphinx of quartz. 10121*22dc650dSSadaf Ebrahimi 0: Jackdaws love my big sphinx of quartz 10122*22dc650dSSadaf Ebrahimi 1: z 10123*22dc650dSSadaf Ebrahimi Pack my box with five dozen liquor jugs. 10124*22dc650dSSadaf Ebrahimi 0: Pack my box with five dozen liquor jugs 10125*22dc650dSSadaf Ebrahimi 1: s 10126*22dc650dSSadaf Ebrahimi\= Expect no match 10127*22dc650dSSadaf Ebrahimi The quick brown fox jumps over the lazy cat. 10128*22dc650dSSadaf EbrahimiNo match 10129*22dc650dSSadaf Ebrahimi Hackdaws love my big sphinx of quartz. 10130*22dc650dSSadaf EbrahimiNo match 10131*22dc650dSSadaf Ebrahimi Pack my fox with five dozen liquor jugs. 10132*22dc650dSSadaf EbrahimiNo match 10133*22dc650dSSadaf Ebrahimi 10134*22dc650dSSadaf Ebrahimi/(?<=X(?(DEFINE)(A)))X(*F)/ 10135*22dc650dSSadaf Ebrahimi\= Expect no match 10136*22dc650dSSadaf Ebrahimi AXYZ 10137*22dc650dSSadaf EbrahimiNo match 10138*22dc650dSSadaf Ebrahimi 10139*22dc650dSSadaf Ebrahimi/(?<=X(?(DEFINE)(A)))./ 10140*22dc650dSSadaf Ebrahimi AXYZ 10141*22dc650dSSadaf Ebrahimi 0: Y 10142*22dc650dSSadaf Ebrahimi 10143*22dc650dSSadaf Ebrahimi/(?<=X(?(DEFINE)(.*))Y)./ 10144*22dc650dSSadaf Ebrahimi AXYZ 10145*22dc650dSSadaf Ebrahimi 0: Z 10146*22dc650dSSadaf Ebrahimi 10147*22dc650dSSadaf Ebrahimi/(?<=X(?(DEFINE)(Y))(?1))./ 10148*22dc650dSSadaf Ebrahimi AXYZ 10149*22dc650dSSadaf Ebrahimi 0: Z 10150*22dc650dSSadaf Ebrahimi 10151*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/ 10152*22dc650dSSadaf Ebrahimi word 10153*22dc650dSSadaf Ebrahimi 0: word 10154*22dc650dSSadaf Ebrahimi 10155*22dc650dSSadaf Ebrahimi/a{1,2,3}b/ 10156*22dc650dSSadaf Ebrahimi a{1,2,3}b 10157*22dc650dSSadaf Ebrahimi 0: a{1,2,3}b 10158*22dc650dSSadaf Ebrahimi 10159*22dc650dSSadaf Ebrahimi/\214748364/ 10160*22dc650dSSadaf Ebrahimi >\x{8c}748364< 10161*22dc650dSSadaf Ebrahimi 0: \x8c748364 10162*22dc650dSSadaf Ebrahimi 10163*22dc650dSSadaf Ebrahimi/a{65536/ 10164*22dc650dSSadaf Ebrahimi >a{65536< 10165*22dc650dSSadaf Ebrahimi 0: a{65536 10166*22dc650dSSadaf Ebrahimi 10167*22dc650dSSadaf Ebrahimi/a\K.(?0)*/ 10168*22dc650dSSadaf Ebrahimi abac 10169*22dc650dSSadaf Ebrahimi 0: c 10170*22dc650dSSadaf Ebrahimi 10171*22dc650dSSadaf Ebrahimi/(a\K.(?1)*)/ 10172*22dc650dSSadaf Ebrahimi abac 10173*22dc650dSSadaf Ebrahimi 0: c 10174*22dc650dSSadaf Ebrahimi 1: abac 10175*22dc650dSSadaf Ebrahimi 10176*22dc650dSSadaf Ebrahimi# -------------------------------------------------------------------------- 10177*22dc650dSSadaf Ebrahimi# Perl-compatible tests of variable-length lookbehinds. 10178*22dc650dSSadaf Ebrahimi 10179*22dc650dSSadaf Ebrahimi/(?<=ab?c).../g 10180*22dc650dSSadaf Ebrahimi abcdefgacxyz 10181*22dc650dSSadaf Ebrahimi 0: def 10182*22dc650dSSadaf Ebrahimi 0: xyz 10183*22dc650dSSadaf Ebrahimi 10184*22dc650dSSadaf Ebrahimi/(?<=PQR|ab?c).../g 10185*22dc650dSSadaf Ebrahimi abcdefgacxyzPQR123 10186*22dc650dSSadaf Ebrahimi 0: def 10187*22dc650dSSadaf Ebrahimi 0: xyz 10188*22dc650dSSadaf Ebrahimi 0: 123 10189*22dc650dSSadaf Ebrahimi 10190*22dc650dSSadaf Ebrahimi/(?<=ab?c|PQR).../g 10191*22dc650dSSadaf Ebrahimi abcdefgacxyzPQR123 10192*22dc650dSSadaf Ebrahimi 0: def 10193*22dc650dSSadaf Ebrahimi 0: xyz 10194*22dc650dSSadaf Ebrahimi 0: 123 10195*22dc650dSSadaf Ebrahimi 10196*22dc650dSSadaf Ebrahimi/(?<=PQ|ab?c).../g 10197*22dc650dSSadaf Ebrahimi abcdefgacxyzPQR123 10198*22dc650dSSadaf Ebrahimi 0: def 10199*22dc650dSSadaf Ebrahimi 0: xyz 10200*22dc650dSSadaf Ebrahimi 0: R12 10201*22dc650dSSadaf Ebrahimi 10202*22dc650dSSadaf Ebrahimi/(?<=ab?c|PQ).../g 10203*22dc650dSSadaf Ebrahimi abcdefgacxyzPQR123 10204*22dc650dSSadaf Ebrahimi 0: def 10205*22dc650dSSadaf Ebrahimi 0: xyz 10206*22dc650dSSadaf Ebrahimi 0: R12 10207*22dc650dSSadaf Ebrahimi 10208*22dc650dSSadaf Ebrahimi/(?<=a(b?c|d?e?e)f)X./g 10209*22dc650dSSadaf Ebrahimi acfX1zzzaefX2zzzadeefX3zzzX4zzz 10210*22dc650dSSadaf Ebrahimi 0: X1 10211*22dc650dSSadaf Ebrahimi 1: c 10212*22dc650dSSadaf Ebrahimi 0: X2 10213*22dc650dSSadaf Ebrahimi 1: e 10214*22dc650dSSadaf Ebrahimi 0: X3 10215*22dc650dSSadaf Ebrahimi 1: dee 10216*22dc650dSSadaf Ebrahimi 10217*22dc650dSSadaf Ebrahimi/(?<!a(b?c|d?e?e)f)X./g 10218*22dc650dSSadaf Ebrahimi acfX1zzzaefX2zzzadeefX3zzzX4zzz 10219*22dc650dSSadaf Ebrahimi 0: X4 10220*22dc650dSSadaf Ebrahimi 10221*22dc650dSSadaf Ebrahimi/(?(?<=ab?c)d|e)/ 10222*22dc650dSSadaf Ebrahimi abcdefg 10223*22dc650dSSadaf Ebrahimi 0: d 10224*22dc650dSSadaf Ebrahimi acdefg 10225*22dc650dSSadaf Ebrahimi 0: d 10226*22dc650dSSadaf Ebrahimi axdefg 10227*22dc650dSSadaf Ebrahimi 0: e 10228*22dc650dSSadaf Ebrahimi 10229*22dc650dSSadaf Ebrahimi/(?<=\d{2,3}|ABC)./ 10230*22dc650dSSadaf Ebrahimi ABCD 10231*22dc650dSSadaf Ebrahimi 0: D 10232*22dc650dSSadaf Ebrahimi 10233*22dc650dSSadaf Ebrahimi/(?<=(\d{1,255}))X/ 10234*22dc650dSSadaf Ebrahimi 1234X 10235*22dc650dSSadaf Ebrahimi 0: X 10236*22dc650dSSadaf Ebrahimi 1: 1234 10237*22dc650dSSadaf Ebrahimi 10238*22dc650dSSadaf Ebrahimi/(?<=a(b?c){3}d)X/ 10239*22dc650dSSadaf Ebrahimi ZXacbccdXYZ 10240*22dc650dSSadaf Ebrahimi 0: X 10241*22dc650dSSadaf Ebrahimi 1: c 10242*22dc650dSSadaf Ebrahimi 10243*22dc650dSSadaf Ebrahimi/(?<=a(b?c){0}d)X/ 10244*22dc650dSSadaf Ebrahimi ZXadXYZ 10245*22dc650dSSadaf Ebrahimi 0: X 10246*22dc650dSSadaf Ebrahimi 10247*22dc650dSSadaf Ebrahimi/(?<=a?(b?c){0}d)X./ 10248*22dc650dSSadaf Ebrahimi ZXadXYZ 10249*22dc650dSSadaf Ebrahimi 0: XY 10250*22dc650dSSadaf Ebrahimi 10251*22dc650dSSadaf Ebrahimi/(?<=\R)X/ 10252*22dc650dSSadaf Ebrahimi \x{0a}X 10253*22dc650dSSadaf Ebrahimi 0: X 10254*22dc650dSSadaf Ebrahimi a\x{0a}X 10255*22dc650dSSadaf Ebrahimi 0: X 10256*22dc650dSSadaf Ebrahimi a\x{0d}\x{0a}X 10257*22dc650dSSadaf Ebrahimi 0: X 10258*22dc650dSSadaf Ebrahimi 10259*22dc650dSSadaf Ebrahimi# -------------------------------------------------------------------------- 10260*22dc650dSSadaf Ebrahimi 10261*22dc650dSSadaf Ebrahimi# Altered interpretation of {,n} 10262*22dc650dSSadaf Ebrahimi 10263*22dc650dSSadaf Ebrahimi/a{,3}B/ 10264*22dc650dSSadaf Ebrahimi XBBB 10265*22dc650dSSadaf Ebrahimi 0: B 10266*22dc650dSSadaf Ebrahimi XaBBB 10267*22dc650dSSadaf Ebrahimi 0: aB 10268*22dc650dSSadaf Ebrahimi XaaBBB 10269*22dc650dSSadaf Ebrahimi 0: aaB 10270*22dc650dSSadaf Ebrahimi XaaaBBB 10271*22dc650dSSadaf Ebrahimi 0: aaaB 10272*22dc650dSSadaf Ebrahimi XaaaaBBB 10273*22dc650dSSadaf Ebrahimi 0: aaaB 10274*22dc650dSSadaf Ebrahimi 10275*22dc650dSSadaf Ebrahimi# But {,} remains not a qualifier 10276*22dc650dSSadaf Ebrahimi 10277*22dc650dSSadaf Ebrahimi/a{,}B/ 10278*22dc650dSSadaf Ebrahimi Xa{,}BBB 10279*22dc650dSSadaf Ebrahimi 0: a{,}B 10280*22dc650dSSadaf Ebrahimi\= Expect no match 10281*22dc650dSSadaf Ebrahimi XBBB 10282*22dc650dSSadaf EbrahimiNo match 10283*22dc650dSSadaf Ebrahimi XaBBB 10284*22dc650dSSadaf EbrahimiNo match 10285*22dc650dSSadaf Ebrahimi 10286*22dc650dSSadaf Ebrahimi# Checks for non-quantifiers after refactored code 10287*22dc650dSSadaf Ebrahimi 10288*22dc650dSSadaf Ebrahimi/X{/ 10289*22dc650dSSadaf Ebrahimi ZZX{}YY 10290*22dc650dSSadaf Ebrahimi 0: X{ 10291*22dc650dSSadaf Ebrahimi 10292*22dc650dSSadaf Ebrahimi/X{A/ 10293*22dc650dSSadaf Ebrahimi ZZX{ABC} 10294*22dc650dSSadaf Ebrahimi 0: X{A 10295*22dc650dSSadaf Ebrahimi 10296*22dc650dSSadaf Ebrahimi/X{}/ 10297*22dc650dSSadaf Ebrahimi ZZX{}YZ 10298*22dc650dSSadaf Ebrahimi 0: X{} 10299*22dc650dSSadaf Ebrahimi 10300*22dc650dSSadaf Ebrahimi/X{1234/ 10301*22dc650dSSadaf Ebrahimi ZZX{123456 10302*22dc650dSSadaf Ebrahimi 0: X{1234 10303*22dc650dSSadaf Ebrahimi 10304*22dc650dSSadaf Ebrahimi/X{12ABC}/ 10305*22dc650dSSadaf Ebrahimi ZZX{12ABC}Y 10306*22dc650dSSadaf Ebrahimi 0: X{12ABC} 10307*22dc650dSSadaf Ebrahimi 10308*22dc650dSSadaf Ebrahimi/X{1,/ 10309*22dc650dSSadaf Ebrahimi ZZX{1,... 10310*22dc650dSSadaf Ebrahimi 0: X{1, 10311*22dc650dSSadaf Ebrahimi 10312*22dc650dSSadaf Ebrahimi/X{,9/ 10313*22dc650dSSadaf Ebrahimi ZZX{,9}abc 10314*22dc650dSSadaf Ebrahimi 0: X{,9 10315*22dc650dSSadaf Ebrahimi 10316*22dc650dSSadaf Ebrahimi/X{,9]/ 10317*22dc650dSSadaf Ebrahimi ZZX{,9].. 10318*22dc650dSSadaf Ebrahimi 0: X{,9] 10319*22dc650dSSadaf Ebrahimi 10320*22dc650dSSadaf Ebrahimi# -------------------------------------------------------------------------- 10321*22dc650dSSadaf Ebrahimi 10322*22dc650dSSadaf Ebrahimi/(A)(?-1)(?+1)(B)/ 10323*22dc650dSSadaf Ebrahimi xxAABBzz 10324*22dc650dSSadaf Ebrahimi 0: AABB 10325*22dc650dSSadaf Ebrahimi 1: A 10326*22dc650dSSadaf Ebrahimi 2: B 10327*22dc650dSSadaf Ebrahimi 10328*22dc650dSSadaf Ebrahimi/(A)(\g{ -2 }B)/ 10329*22dc650dSSadaf Ebrahimi XAABX 10330*22dc650dSSadaf Ebrahimi 0: AAB 10331*22dc650dSSadaf Ebrahimi 1: A 10332*22dc650dSSadaf Ebrahimi 2: AB 10333*22dc650dSSadaf Ebrahimi 10334*22dc650dSSadaf Ebrahimi/(A)((?-2)B)/ 10335*22dc650dSSadaf Ebrahimi XAABX 10336*22dc650dSSadaf Ebrahimi 0: AAB 10337*22dc650dSSadaf Ebrahimi 1: A 10338*22dc650dSSadaf Ebrahimi 2: AB 10339*22dc650dSSadaf Ebrahimi 10340*22dc650dSSadaf Ebrahimi/a\c\X/ 10341*22dc650dSSadaf Ebrahimi --a\x1cX-- 10342*22dc650dSSadaf Ebrahimi 0: a\x1cX 10343*22dc650dSSadaf Ebrahimi 10344*22dc650dSSadaf Ebrahimi/(a)\g{ 1 }/ 10345*22dc650dSSadaf Ebrahimi baab 10346*22dc650dSSadaf Ebrahimi 0: aa 10347*22dc650dSSadaf Ebrahimi 1: a 10348*22dc650dSSadaf Ebrahimi 10349*22dc650dSSadaf Ebrahimi/a{ 1,2 }/ 10350*22dc650dSSadaf Ebrahimi Xaaaaa 10351*22dc650dSSadaf Ebrahimi 0: aa 10352*22dc650dSSadaf Ebrahimi 10353*22dc650dSSadaf Ebrahimi/a{ 1 , 2 }/ 10354*22dc650dSSadaf Ebrahimi Xaaaaa 10355*22dc650dSSadaf Ebrahimi 0: aa 10356*22dc650dSSadaf Ebrahimi 10357*22dc650dSSadaf Ebrahimi/(?'name'ab)\k{ name }(?P=name)/ 10358*22dc650dSSadaf Ebrahimi XabababX 10359*22dc650dSSadaf Ebrahimi 0: ababab 10360*22dc650dSSadaf Ebrahimi 1: ab 10361*22dc650dSSadaf Ebrahimi 10362*22dc650dSSadaf Ebrahimi/A{,}B/ 10363*22dc650dSSadaf Ebrahimi A{,}B 10364*22dc650dSSadaf Ebrahimi 0: A{,}B 10365*22dc650dSSadaf Ebrahimi 10366*22dc650dSSadaf Ebrahimi/A{ , }B/ 10367*22dc650dSSadaf Ebrahimi A{ , }B 10368*22dc650dSSadaf Ebrahimi 0: A{ , }B 10369*22dc650dSSadaf Ebrahimi 10370*22dc650dSSadaf Ebrahimi/A{ ,3}/ 10371*22dc650dSSadaf Ebrahimi AAAAAACC 10372*22dc650dSSadaf Ebrahimi 0: AAA 10373*22dc650dSSadaf Ebrahimi 10374*22dc650dSSadaf Ebrahimi/A{ 3, }/ 10375*22dc650dSSadaf Ebrahimi BBAAAAAACC 10376*22dc650dSSadaf Ebrahimi 0: AAAAAA 10377*22dc650dSSadaf Ebrahimi 10378*22dc650dSSadaf Ebrahimi# This pattern validates regular expression patterns. The original that I was 10379*22dc650dSSadaf Ebrahimi# sent was this: 10380*22dc650dSSadaf Ebrahimi# /^((?:(?:[^?+*{}()[\]\\|]+|\\.|\[(?:\^?\\.|\^[^\\]|[^\\^])(?:[^\]\\]+|\\.)*\]|\((?:\?[:=!]|\?<[=!]|\?>)?(?1)??\)|\(\?(?:R|[+-]?\d+)\))(?:(?:[?+*]|\{\d+(?:,\d*)?\})[?+]?)?|\|)*)$/ 10381*22dc650dSSadaf Ebrahimi# This is not very readable, and also does not handle all features. I have done 10382*22dc650dSSadaf Ebrahimi# some work on it. 10383*22dc650dSSadaf Ebrahimi 10384*22dc650dSSadaf Ebrahimi/^ 10385*22dc650dSSadaf Ebrahimi(?<re> 10386*22dc650dSSadaf Ebrahimi# A regular expression is zero or more of these items. 10387*22dc650dSSadaf Ebrahimi (?: 10388*22dc650dSSadaf Ebrahimi # An item is one of these: 10389*22dc650dSSadaf Ebrahimi (?: 10390*22dc650dSSadaf Ebrahimi [^?+*{}()\[\]\\|]++| # Non-meta characters or unquoted . 10391*22dc650dSSadaf Ebrahimi \\.| # Quoted . 10392*22dc650dSSadaf Ebrahimi 10393*22dc650dSSadaf Ebrahimi \[ # Class, which is [ 10394*22dc650dSSadaf Ebrahimi (?: # Followed by 10395*22dc650dSSadaf Ebrahimi \^?\\.| # Optional ^ and any escaped character 10396*22dc650dSSadaf Ebrahimi \^[^\\]| # OR ^ and not escaped character 10397*22dc650dSSadaf Ebrahimi [^\\^] # OR neither ^ nor \ 10398*22dc650dSSadaf Ebrahimi ) # Followed by 10399*22dc650dSSadaf Ebrahimi (?:[^\]\\]+|\\.)*+ # Zero or more (not ] or \) OR escaped dot 10400*22dc650dSSadaf Ebrahimi \]| # Class ends with ] 10401*22dc650dSSadaf Ebrahimi 10402*22dc650dSSadaf Ebrahimi \( # Parenthesized group 10403*22dc650dSSadaf Ebrahimi (?: # Start with optional 10404*22dc650dSSadaf Ebrahimi \?[:=!]| # ? followed by : = ! 10405*22dc650dSSadaf Ebrahimi \?<[=!]| # OR ?< followed by = or ! 10406*22dc650dSSadaf Ebrahimi \?> # OR ?> 10407*22dc650dSSadaf Ebrahimi )? 10408*22dc650dSSadaf Ebrahimi (?&re)?? # Then a nested <re> 10409*22dc650dSSadaf Ebrahimi \)| # End parenthesized group 10410*22dc650dSSadaf Ebrahimi 10411*22dc650dSSadaf Ebrahimi \(\? # Other parenthesized items 10412*22dc650dSSadaf Ebrahimi (?: # (? followed by 10413*22dc650dSSadaf Ebrahimi R| # R 10414*22dc650dSSadaf Ebrahimi [+-]?\d++ # Or optional +- and digits 10415*22dc650dSSadaf Ebrahimi ) 10416*22dc650dSSadaf Ebrahimi \)| # End parens 10417*22dc650dSSadaf Ebrahimi 10418*22dc650dSSadaf Ebrahimi \(\* # Verbs 10419*22dc650dSSadaf Ebrahimi (?: 10420*22dc650dSSadaf Ebrahimi COMMIT| 10421*22dc650dSSadaf Ebrahimi FAIL| 10422*22dc650dSSadaf Ebrahimi MARK:[^)]*| 10423*22dc650dSSadaf Ebrahimi (?:PRUNE|SKIP|THEN)(?::[^\)]*+)? 10424*22dc650dSSadaf Ebrahimi ) 10425*22dc650dSSadaf Ebrahimi \) 10426*22dc650dSSadaf Ebrahimi ) # End list of items 10427*22dc650dSSadaf Ebrahimi 10428*22dc650dSSadaf Ebrahimi # Followed by an optional quantifier 10429*22dc650dSSadaf Ebrahimi 10430*22dc650dSSadaf Ebrahimi (?: 10431*22dc650dSSadaf Ebrahimi (?: 10432*22dc650dSSadaf Ebrahimi [?+*] # ?+* 10433*22dc650dSSadaf Ebrahimi | # OR 10434*22dc650dSSadaf Ebrahimi \{\d+ # { digits 10435*22dc650dSSadaf Ebrahimi (?:,\d*)? # optionally followed by ,digits 10436*22dc650dSSadaf Ebrahimi \} # then closing } 10437*22dc650dSSadaf Ebrahimi | # OR 10438*22dc650dSSadaf Ebrahimi \{,\d+} # {,digits} 10439*22dc650dSSadaf Ebrahimi ) 10440*22dc650dSSadaf Ebrahimi [?+]? # optional ungreedy or possessive 10441*22dc650dSSadaf Ebrahimi )? 10442*22dc650dSSadaf Ebrahimi 10443*22dc650dSSadaf Ebrahimi | # OR an "item" is a branch ending 10444*22dc650dSSadaf Ebrahimi 10445*22dc650dSSadaf Ebrahimi \| 10446*22dc650dSSadaf Ebrahimi 10447*22dc650dSSadaf Ebrahimi )* # Zero or more top-level items. 10448*22dc650dSSadaf Ebrahimi) # End regex group. 10449*22dc650dSSadaf Ebrahimi$/x 10450*22dc650dSSadaf Ebrahimi [abcdef] 10451*22dc650dSSadaf Ebrahimi 0: [abcdef] 10452*22dc650dSSadaf Ebrahimi 1: [abcdef] 10453*22dc650dSSadaf Ebrahimi [abc\\]def] 10454*22dc650dSSadaf Ebrahimi 0: [abc\]def] 10455*22dc650dSSadaf Ebrahimi 1: [abc\]def] 10456*22dc650dSSadaf Ebrahimi a.b|abcd 10457*22dc650dSSadaf Ebrahimi 0: a.b|abcd 10458*22dc650dSSadaf Ebrahimi 1: a.b|abcd 10459*22dc650dSSadaf Ebrahimi ab()d 10460*22dc650dSSadaf Ebrahimi 0: ab()d 10461*22dc650dSSadaf Ebrahimi 1: ab()d 10462*22dc650dSSadaf Ebrahimi ab{1,3}d 10463*22dc650dSSadaf Ebrahimi 0: ab{1,3}d 10464*22dc650dSSadaf Ebrahimi 1: ab{1,3}d 10465*22dc650dSSadaf Ebrahimi ab{,3}d 10466*22dc650dSSadaf Ebrahimi 0: ab{,3}d 10467*22dc650dSSadaf Ebrahimi 1: ab{,3}d 10468*22dc650dSSadaf Ebrahimi ab(*FAIL)d(*COMMIT)(*SKIP)(*THEN:abc) 10469*22dc650dSSadaf Ebrahimi 0: ab(*FAIL)d(*COMMIT)(*SKIP)(*THEN:abc) 10470*22dc650dSSadaf Ebrahimi 1: ab(*FAIL)d(*COMMIT)(*SKIP)(*THEN:abc) 10471*22dc650dSSadaf Ebrahimi ab(*MARK:xyz) 10472*22dc650dSSadaf Ebrahimi 0: ab(*MARK:xyz) 10473*22dc650dSSadaf Ebrahimi 1: ab(*MARK:xyz) 10474*22dc650dSSadaf Ebrahimi (?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\\s]) 10475*22dc650dSSadaf Ebrahimi 0: (?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\s]) 10476*22dc650dSSadaf Ebrahimi 1: (?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\s]) 10477*22dc650dSSadaf Ebrahimi abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\^\\\\\\?caxyz 10478*22dc650dSSadaf Ebrahimi 0: abcd\t\n\r\f\a\e\071\x3b\^\\\?caxyz 10479*22dc650dSSadaf Ebrahimi 1: abcd\t\n\r\f\a\e\071\x3b\^\\\?caxyz 10480*22dc650dSSadaf Ebrahimi a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz 10481*22dc650dSSadaf Ebrahimi 0: a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz 10482*22dc650dSSadaf Ebrahimi 1: a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz 10483*22dc650dSSadaf Ebrahimi \\G(?:(?=(\\1.|)(.))){1,13}?(?!.*\\2.*\\2)\\1\\K\\2 10484*22dc650dSSadaf Ebrahimi 0: \G(?:(?=(\1.|)(.))){1,13}?(?!.*\2.*\2)\1\K\2 10485*22dc650dSSadaf Ebrahimi 1: \G(?:(?=(\1.|)(.))){1,13}?(?!.*\2.*\2)\1\K\2 10486*22dc650dSSadaf Ebrahimi\= Expect no match 10487*22dc650dSSadaf Ebrahimi ab)d 10488*22dc650dSSadaf EbrahimiNo match 10489*22dc650dSSadaf Ebrahimi ab(d 10490*22dc650dSSadaf EbrahimiNo match 10491*22dc650dSSadaf Ebrahimi {4,5} 10492*22dc650dSSadaf EbrahimiNo match 10493*22dc650dSSadaf Ebrahimi a[]b 10494*22dc650dSSadaf EbrahimiNo match 10495*22dc650dSSadaf Ebrahimi (a)(?(1)a|b|c) 10496*22dc650dSSadaf EbrahimiNo match 10497*22dc650dSSadaf Ebrahimi 10498*22dc650dSSadaf Ebrahimi/^..A(*SKIP)B|C/ 10499*22dc650dSSadaf Ebrahimi 12ADC 10500*22dc650dSSadaf Ebrahimi 0: C 10501*22dc650dSSadaf Ebrahimi 10502*22dc650dSSadaf Ebrahimi/(?<!a?)/ 10503*22dc650dSSadaf Ebrahimi a 10504*22dc650dSSadaf EbrahimiNo match 10505*22dc650dSSadaf Ebrahimi 10506*22dc650dSSadaf Ebrahimi# End of testinput1 10507