/[pcre]/code/trunk/testdata/testoutput1
ViewVC logotype

Diff of /code/trunk/testdata/testoutput1

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 53 by nigel, Sat Feb 24 21:39:42 2007 UTC revision 1271 by ph10, Wed Mar 6 16:50:38 2013 UTC
# Line 1  Line 1 
1  PCRE version 3.5 15-Aug-2001  /-- This set of tests is for features that are compatible with all versions of
2        Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
3        16-bit PCRE libraries. --/
4    
5  /the quick brown fox/  /the quick brown fox/
6      the quick brown fox      the quick brown fox
# Line 1819  No match Line 1821  No match
1821  No match  No match
1822    
1823  /^a     b  /^a     b
1824        c/x        c/x
1825      abc      abc
1826   0: abc   0: abc
1827    
# Line 1941  No match Line 1943  No match
1943  /^[W-c]+$/  /^[W-c]+$/
1944      WXY_^abc      WXY_^abc
1945   0: WXY_^abc   0: WXY_^abc
1946      ***Failers      *** Failers
1947  No match  No match
1948      wxy      wxy
1949  No match  No match
# Line 2095  No match Line 2097  No match
2097      {4,5a}bc      {4,5a}bc
2098   0: {4,5a}bc   0: {4,5a}bc
2099    
 /^a.b/  
     a\rb  
  0: a\x0db  
     *** Failers  
 No match  
     a\nb  
 No match  
   
2100  /abc$/  /abc$/
2101      abc      abc
2102   0: abc   0: abc
# Line 2128  No match Line 2122  No match
2122   0: abc\xd3   0: abc\xd3
2123   1: abc   1: abc
2124    
2125  /(abc)\500/  /(abc)\100/
2126      abc\x40      abc\x40
2127   0: abc@   0: abc@
2128   1: abc   1: abc
# Line 2136  No match Line 2130  No match
2130   0: abc@   0: abc@
2131   1: abc   1: abc
2132    
2133  /(abc)\5000/  /(abc)\1000/
2134      abc\x400      abc\x400
2135   0: abc@0   0: abc@0
2136   1: abc   1: abc
# Line 2199  No match Line 2193  No match
2193  10: j  10: j
2194  11: k  11: k
2195    
2196  /ab\gdef/  /ab\idef/
2197      abgdef      abidef
2198   0: abgdef   0: abidef
2199    
2200  /a{0}bc/  /a{0}bc/
2201      bc      bc
# Line 2224  No match Line 2218  No match
2218   0: abc\x01de   0: abc\x01de
2219   1: abc   1: abc
2220    
2221  /a.b(?s)/  /(?s)a.b/
2222      a\nb      a\nb
2223   0: a\x0ab   0: a\x0ab
2224    
# Line 2996  No match Line 2990  No match
2990      \0{ab}      \0{ab}
2991   0: \x00{ab}   0: \x00{ab}
2992    
2993  / End of testinput1 /  /(A|B)*?CD/
2994        CD
2995     0: CD
2996    
2997    /(A|B)*CD/
2998        CD
2999     0: CD
3000    
3001    /(AB)*?\1/
3002        ABABAB
3003     0: ABAB
3004     1: AB
3005    
3006    /(AB)*\1/
3007        ABABAB
3008     0: ABABAB
3009     1: AB
3010    
3011    /(?<!bar)foo/
3012        foo
3013     0: foo
3014        catfood
3015     0: foo
3016        arfootle
3017     0: foo
3018        rfoosh
3019     0: foo
3020        *** Failers
3021    No match
3022        barfoo
3023    No match
3024        towbarfoo
3025    No match
3026    
3027    /\w{3}(?<!bar)foo/
3028        catfood
3029     0: catfoo
3030        *** Failers
3031    No match
3032        foo
3033    No match
3034        barfoo
3035    No match
3036        towbarfoo
3037    No match
3038    
3039    /(?<=(foo)a)bar/
3040        fooabar
3041     0: bar
3042     1: foo
3043        *** Failers
3044    No match
3045        bar
3046    No match
3047        foobbar
3048    No match
3049    
3050    /\Aabc\z/m
3051        abc
3052     0: abc
3053        *** Failers
3054    No match
3055        abc\n
3056    No match
3057        qqq\nabc
3058    No match
3059        abc\nzzz
3060    No match
3061        qqq\nabc\nzzz
3062    No match
3063    
3064    "(?>.*/)foo"
3065        /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
3066    No match
3067    
3068    "(?>.*/)foo"
3069        /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3070     0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
3071    
3072    /(?>(\.\d\d[1-9]?))\d+/
3073        1.230003938
3074     0: .230003938
3075     1: .23
3076        1.875000282
3077     0: .875000282
3078     1: .875
3079        *** Failers
3080    No match
3081        1.235
3082    No match
3083    
3084    /^((?>\w+)|(?>\s+))*$/
3085        now is the time for all good men to come to the aid of the party
3086     0: now is the time for all good men to come to the aid of the party
3087     1: party
3088        *** Failers
3089    No match
3090        this is not a line with only words and spaces!
3091    No match
3092    
3093    /(\d+)(\w)/
3094        12345a
3095     0: 12345a
3096     1: 12345
3097     2: a
3098        12345+
3099     0: 12345
3100     1: 1234
3101     2: 5
3102    
3103    /((?>\d+))(\w)/
3104        12345a
3105     0: 12345a
3106     1: 12345
3107     2: a
3108        *** Failers
3109    No match
3110        12345+
3111    No match
3112    
3113    /(?>a+)b/
3114        aaab
3115     0: aaab
3116    
3117    /((?>a+)b)/
3118        aaab
3119     0: aaab
3120     1: aaab
3121    
3122    /(?>(a+))b/
3123        aaab
3124     0: aaab
3125     1: aaa
3126    
3127    /(?>b)+/
3128        aaabbbccc
3129     0: bbb
3130    
3131    /(?>a+|b+|c+)*c/
3132        aaabbbbccccd
3133     0: aaabbbbc
3134    
3135    /((?>[^()]+)|\([^()]*\))+/
3136        ((abc(ade)ufh()()x
3137     0: abc(ade)ufh()()x
3138     1: x
3139    
3140    /\(((?>[^()]+)|\([^()]+\))+\)/
3141        (abc)
3142     0: (abc)
3143     1: abc
3144        (abc(def)xyz)
3145     0: (abc(def)xyz)
3146     1: xyz
3147        *** Failers
3148    No match
3149        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3150    No match
3151    
3152    /a(?-i)b/i
3153        ab
3154     0: ab
3155        Ab
3156     0: Ab
3157        *** Failers
3158    No match
3159        aB
3160    No match
3161        AB
3162    No match
3163    
3164    /(a (?x)b c)d e/
3165        a bcd e
3166     0: a bcd e
3167     1: a bc
3168        *** Failers
3169    No match
3170        a b cd e
3171    No match
3172        abcd e
3173    No match
3174        a bcde
3175    No match
3176    
3177    /(a b(?x)c d (?-x)e f)/
3178        a bcde f
3179     0: a bcde f
3180     1: a bcde f
3181        *** Failers
3182    No match
3183        abcdef
3184    No match
3185    
3186    /(a(?i)b)c/
3187        abc
3188     0: abc
3189     1: ab
3190        aBc
3191     0: aBc
3192     1: aB
3193        *** Failers
3194    No match
3195        abC
3196    No match
3197        aBC
3198    No match
3199        Abc
3200    No match
3201        ABc
3202    No match
3203        ABC
3204    No match
3205        AbC
3206    No match
3207    
3208    /a(?i:b)c/
3209        abc
3210     0: abc
3211        aBc
3212     0: aBc
3213        *** Failers
3214    No match
3215        ABC
3216    No match
3217        abC
3218    No match
3219        aBC
3220    No match
3221    
3222    /a(?i:b)*c/
3223        aBc
3224     0: aBc
3225        aBBc
3226     0: aBBc
3227        *** Failers
3228    No match
3229        aBC
3230    No match
3231        aBBC
3232    No match
3233    
3234    /a(?=b(?i)c)\w\wd/
3235        abcd
3236     0: abcd
3237        abCd
3238     0: abCd
3239        *** Failers
3240    No match
3241        aBCd
3242    No match
3243        abcD
3244    No match
3245    
3246    /(?s-i:more.*than).*million/i
3247        more than million
3248     0: more than million
3249        more than MILLION
3250     0: more than MILLION
3251        more \n than Million
3252     0: more \x0a than Million
3253        *** Failers
3254    No match
3255        MORE THAN MILLION
3256    No match
3257        more \n than \n million
3258    No match
3259    
3260    /(?:(?s-i)more.*than).*million/i
3261        more than million
3262     0: more than million
3263        more than MILLION
3264     0: more than MILLION
3265        more \n than Million
3266     0: more \x0a than Million
3267        *** Failers
3268    No match
3269        MORE THAN MILLION
3270    No match
3271        more \n than \n million
3272    No match
3273    
3274    /(?>a(?i)b+)+c/
3275        abc
3276     0: abc
3277        aBbc
3278     0: aBbc
3279        aBBc
3280     0: aBBc
3281        *** Failers
3282    No match
3283        Abc
3284    No match
3285        abAb
3286    No match
3287        abbC
3288    No match
3289    
3290    /(?=a(?i)b)\w\wc/
3291        abc
3292     0: abc
3293        aBc
3294     0: aBc
3295        *** Failers
3296    No match
3297        Ab
3298    No match
3299        abC
3300    No match
3301        aBC
3302    No match
3303    
3304    /(?<=a(?i)b)(\w\w)c/
3305        abxxc
3306     0: xxc
3307     1: xx
3308        aBxxc
3309     0: xxc
3310     1: xx
3311        *** Failers
3312    No match
3313        Abxxc
3314    No match
3315        ABxxc
3316    No match
3317        abxxC
3318    No match
3319    
3320    /(?:(a)|b)(?(1)A|B)/
3321        aA
3322     0: aA
3323     1: a
3324        bB
3325     0: bB
3326        *** Failers
3327    No match
3328        aB
3329    No match
3330        bA
3331    No match
3332    
3333    /^(a)?(?(1)a|b)+$/
3334        aa
3335     0: aa
3336     1: a
3337        b
3338     0: b
3339        bb
3340     0: bb
3341        *** Failers
3342    No match
3343        ab
3344    No match
3345    
3346    /^(?(?=abc)\w{3}:|\d\d)$/
3347        abc:
3348     0: abc:
3349        12
3350     0: 12
3351        *** Failers
3352    No match
3353        123
3354    No match
3355        xyz
3356    No match
3357    
3358    /^(?(?!abc)\d\d|\w{3}:)$/
3359        abc:
3360     0: abc:
3361        12
3362     0: 12
3363        *** Failers
3364    No match
3365        123
3366    No match
3367        xyz
3368    No match
3369    
3370    /(?(?<=foo)bar|cat)/
3371        foobar
3372     0: bar
3373        cat
3374     0: cat
3375        fcat
3376     0: cat
3377        focat
3378     0: cat
3379        *** Failers
3380    No match
3381        foocat
3382    No match
3383    
3384    /(?(?<!foo)cat|bar)/
3385        foobar
3386     0: bar
3387        cat
3388     0: cat
3389        fcat
3390     0: cat
3391        focat
3392     0: cat
3393        *** Failers
3394    No match
3395        foocat
3396    No match
3397    
3398    /( \( )? [^()]+ (?(1) \) |) /x
3399        abcd
3400     0: abcd
3401        (abcd)
3402     0: (abcd)
3403     1: (
3404        the quick (abcd) fox
3405     0: the quick
3406        (abcd
3407     0: abcd
3408    
3409    /( \( )? [^()]+ (?(1) \) ) /x
3410        abcd
3411     0: abcd
3412        (abcd)
3413     0: (abcd)
3414     1: (
3415        the quick (abcd) fox
3416     0: the quick
3417        (abcd
3418     0: abcd
3419    
3420    /^(?(2)a|(1)(2))+$/
3421        12
3422     0: 12
3423     1: 1
3424     2: 2
3425        12a
3426     0: 12a
3427     1: 1
3428     2: 2
3429        12aa
3430     0: 12aa
3431     1: 1
3432     2: 2
3433        *** Failers
3434    No match
3435        1234
3436    No match
3437    
3438    /((?i)blah)\s+\1/
3439        blah blah
3440     0: blah blah
3441     1: blah
3442        BLAH BLAH
3443     0: BLAH BLAH
3444     1: BLAH
3445        Blah Blah
3446     0: Blah Blah
3447     1: Blah
3448        blaH blaH
3449     0: blaH blaH
3450     1: blaH
3451        *** Failers
3452    No match
3453        blah BLAH
3454    No match
3455        Blah blah
3456    No match
3457        blaH blah
3458    No match
3459    
3460    /((?i)blah)\s+(?i:\1)/
3461        blah blah
3462     0: blah blah
3463     1: blah
3464        BLAH BLAH
3465     0: BLAH BLAH
3466     1: BLAH
3467        Blah Blah
3468     0: Blah Blah
3469     1: Blah
3470        blaH blaH
3471     0: blaH blaH
3472     1: blaH
3473        blah BLAH
3474     0: blah BLAH
3475     1: blah
3476        Blah blah
3477     0: Blah blah
3478     1: Blah
3479        blaH blah
3480     0: blaH blah
3481     1: blaH
3482    
3483    /(?>a*)*/
3484        a
3485     0: a
3486        aa
3487     0: aa
3488        aaaa
3489     0: aaaa
3490    
3491    /(abc|)+/
3492        abc
3493     0: abc
3494     1:
3495        abcabc
3496     0: abcabc
3497     1:
3498        abcabcabc
3499     0: abcabcabc
3500     1:
3501        xyz
3502     0:
3503     1:
3504    
3505    /([a]*)*/
3506        a
3507     0: a
3508     1:
3509        aaaaa
3510     0: aaaaa
3511     1:
3512    
3513    /([ab]*)*/
3514        a
3515     0: a
3516     1:
3517        b
3518     0: b
3519     1:
3520        ababab
3521     0: ababab
3522     1:
3523        aaaabcde
3524     0: aaaab
3525     1:
3526        bbbb
3527     0: bbbb
3528     1:
3529    
3530    /([^a]*)*/
3531        b
3532     0: b
3533     1:
3534        bbbb
3535     0: bbbb
3536     1:
3537        aaa
3538     0:
3539     1:
3540    
3541    /([^ab]*)*/
3542        cccc
3543     0: cccc
3544     1:
3545        abab
3546     0:
3547     1:
3548    
3549    /([a]*?)*/
3550        a
3551     0:
3552     1:
3553        aaaa
3554     0:
3555     1:
3556    
3557    /([ab]*?)*/
3558        a
3559     0:
3560     1:
3561        b
3562     0:
3563     1:
3564        abab
3565     0:
3566     1:
3567        baba
3568     0:
3569     1:
3570    
3571    /([^a]*?)*/
3572        b
3573     0:
3574     1:
3575        bbbb
3576     0:
3577     1:
3578        aaa
3579     0:
3580     1:
3581    
3582    /([^ab]*?)*/
3583        c
3584     0:
3585     1:
3586        cccc
3587     0:
3588     1:
3589        baba
3590     0:
3591     1:
3592    
3593    /(?>a*)*/
3594        a
3595     0: a
3596        aaabcde
3597     0: aaa
3598    
3599    /((?>a*))*/
3600        aaaaa
3601     0: aaaaa
3602     1:
3603        aabbaa
3604     0: aa
3605     1:
3606    
3607    /((?>a*?))*/
3608        aaaaa
3609     0:
3610     1:
3611        aabbaa
3612     0:
3613     1:
3614    
3615    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
3616        12-sep-98
3617     0: 12-sep-98
3618        12-09-98
3619     0: 12-09-98
3620        *** Failers
3621    No match
3622        sep-12-98
3623    No match
3624    
3625    /(?<=(foo))bar\1/
3626        foobarfoo
3627     0: barfoo
3628     1: foo
3629        foobarfootling
3630     0: barfoo
3631     1: foo
3632        *** Failers
3633    No match
3634        foobar
3635    No match
3636        barfoo
3637    No match
3638    
3639    /(?i:saturday|sunday)/
3640        saturday
3641     0: saturday
3642        sunday
3643     0: sunday
3644        Saturday
3645     0: Saturday
3646        Sunday
3647     0: Sunday
3648        SATURDAY
3649     0: SATURDAY
3650        SUNDAY
3651     0: SUNDAY
3652        SunDay
3653     0: SunDay
3654    
3655    /(a(?i)bc|BB)x/
3656        abcx
3657     0: abcx
3658     1: abc
3659        aBCx
3660     0: aBCx
3661     1: aBC
3662        bbx
3663     0: bbx
3664     1: bb
3665        BBx
3666     0: BBx
3667     1: BB
3668        *** Failers
3669    No match
3670        abcX
3671    No match
3672        aBCX
3673    No match
3674        bbX
3675    No match
3676        BBX
3677    No match
3678    
3679    /^([ab](?i)[cd]|[ef])/
3680        ac
3681     0: ac
3682     1: ac
3683        aC
3684     0: aC
3685     1: aC
3686        bD
3687     0: bD
3688     1: bD
3689        elephant
3690     0: e
3691     1: e
3692        Europe
3693     0: E
3694     1: E
3695        frog
3696     0: f
3697     1: f
3698        France
3699     0: F
3700     1: F
3701        *** Failers
3702    No match
3703        Africa
3704    No match
3705    
3706    /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
3707        ab
3708     0: ab
3709     1: ab
3710        aBd
3711     0: aBd
3712     1: aBd
3713        xy
3714     0: xy
3715     1: xy
3716        xY
3717     0: xY
3718     1: xY
3719        zebra
3720     0: z
3721     1: z
3722        Zambesi
3723     0: Z
3724     1: Z
3725        *** Failers
3726    No match
3727        aCD
3728    No match
3729        XY
3730    No match
3731    
3732    /(?<=foo\n)^bar/m
3733        foo\nbar
3734     0: bar
3735        *** Failers
3736    No match
3737        bar
3738    No match
3739        baz\nbar
3740    No match
3741    
3742    /(?<=(?<!foo)bar)baz/
3743        barbaz
3744     0: baz
3745        barbarbaz
3746     0: baz
3747        koobarbaz
3748     0: baz
3749        *** Failers
3750    No match
3751        baz
3752    No match
3753        foobarbaz
3754    No match
3755    
3756    /The cases of aaaa and aaaaaa are missed out below because Perl does things/
3757    /differently. We know that odd, and maybe incorrect, things happen with/
3758    No match
3759    /recursive references in Perl, as far as 5.11.3 - see some stuff in test #2./
3760    No match
3761    
3762    /^(a\1?){4}$/
3763        a
3764    No match
3765        aa
3766    No match
3767        aaa
3768    No match
3769        aaaaa
3770     0: aaaaa
3771     1: a
3772        aaaaaaa
3773     0: aaaaaaa
3774     1: a
3775        aaaaaaaa
3776    No match
3777        aaaaaaaaa
3778    No match
3779        aaaaaaaaaa
3780     0: aaaaaaaaaa
3781     1: aaaa
3782        aaaaaaaaaaa
3783    No match
3784        aaaaaaaaaaaa
3785    No match
3786        aaaaaaaaaaaaa
3787    No match
3788        aaaaaaaaaaaaaa
3789    No match
3790        aaaaaaaaaaaaaaa
3791    No match
3792        aaaaaaaaaaaaaaaa
3793    No match
3794    
3795    /^(a\1?)(a\1?)(a\2?)(a\3?)$/
3796        a
3797    No match
3798        aa
3799    No match
3800        aaa
3801    No match
3802        aaaa
3803     0: aaaa
3804     1: a
3805     2: a
3806     3: a
3807     4: a
3808        aaaaa
3809     0: aaaaa
3810     1: a
3811     2: aa
3812     3: a
3813     4: a
3814        aaaaaa
3815     0: aaaaaa
3816     1: a
3817     2: aa
3818     3: a
3819     4: aa
3820        aaaaaaa
3821     0: aaaaaaa
3822     1: a
3823     2: aa
3824     3: aaa
3825     4: a
3826        aaaaaaaa
3827    No match
3828        aaaaaaaaa
3829    No match
3830        aaaaaaaaaa
3831     0: aaaaaaaaaa
3832     1: a
3833     2: aa
3834     3: aaa
3835     4: aaaa
3836        aaaaaaaaaaa
3837    No match
3838        aaaaaaaaaaaa
3839    No match
3840        aaaaaaaaaaaaa
3841    No match
3842        aaaaaaaaaaaaaa
3843    No match
3844        aaaaaaaaaaaaaaa
3845    No match
3846        aaaaaaaaaaaaaaaa
3847    No match
3848    
3849    /The following tests are taken from the Perl 5.005 test suite; some of them/
3850    /are compatible with 5.004, but I'd rather not have to sort them out./
3851    No match
3852    
3853    /abc/
3854        abc
3855     0: abc
3856        xabcy
3857     0: abc
3858        ababc
3859     0: abc
3860        *** Failers
3861    No match
3862        xbc
3863    No match
3864        axc
3865    No match
3866        abx
3867    No match
3868    
3869    /ab*c/
3870        abc
3871     0: abc
3872    
3873    /ab*bc/
3874        abc
3875     0: abc
3876        abbc
3877     0: abbc
3878        abbbbc
3879     0: abbbbc
3880    
3881    /.{1}/
3882        abbbbc
3883     0: a
3884    
3885    /.{3,4}/
3886        abbbbc
3887     0: abbb
3888    
3889    /ab{0,}bc/
3890        abbbbc
3891     0: abbbbc
3892    
3893    /ab+bc/
3894        abbc
3895     0: abbc
3896        *** Failers
3897    No match
3898        abc
3899    No match
3900        abq
3901    No match
3902    
3903    /ab{1,}bc/
3904    
3905    /ab+bc/
3906        abbbbc
3907     0: abbbbc
3908    
3909    /ab{1,}bc/
3910        abbbbc
3911     0: abbbbc
3912    
3913    /ab{1,3}bc/
3914        abbbbc
3915     0: abbbbc
3916    
3917    /ab{3,4}bc/
3918        abbbbc
3919     0: abbbbc
3920    
3921    /ab{4,5}bc/
3922        *** Failers
3923    No match
3924        abq
3925    No match
3926        abbbbc
3927    No match
3928    
3929    /ab?bc/
3930        abbc
3931     0: abbc
3932        abc
3933     0: abc
3934    
3935    /ab{0,1}bc/
3936        abc
3937     0: abc
3938    
3939    /ab?bc/
3940    
3941    /ab?c/
3942        abc
3943     0: abc
3944    
3945    /ab{0,1}c/
3946        abc
3947     0: abc
3948    
3949    /^abc$/
3950        abc
3951     0: abc
3952        *** Failers
3953    No match
3954        abbbbc
3955    No match
3956        abcc
3957    No match
3958    
3959    /^abc/
3960        abcc
3961     0: abc
3962    
3963    /^abc$/
3964    
3965    /abc$/
3966        aabc
3967     0: abc
3968        *** Failers
3969    No match
3970        aabc
3971     0: abc
3972        aabcd
3973    No match
3974    
3975    /^/
3976        abc
3977     0:
3978    
3979    /$/
3980        abc
3981     0:
3982    
3983    /a.c/
3984        abc
3985     0: abc
3986        axc
3987     0: axc
3988    
3989    /a.*c/
3990        axyzc
3991     0: axyzc
3992    
3993    /a[bc]d/
3994        abd
3995     0: abd
3996        *** Failers
3997    No match
3998        axyzd
3999    No match
4000        abc
4001    No match
4002    
4003    /a[b-d]e/
4004        ace
4005     0: ace
4006    
4007    /a[b-d]/
4008        aac
4009     0: ac
4010    
4011    /a[-b]/
4012        a-
4013     0: a-
4014    
4015    /a[b-]/
4016        a-
4017     0: a-
4018    
4019    /a]/
4020        a]
4021     0: a]
4022    
4023    /a[]]b/
4024        a]b
4025     0: a]b
4026    
4027    /a[^bc]d/
4028        aed
4029     0: aed
4030        *** Failers
4031    No match
4032        abd
4033    No match
4034        abd
4035    No match
4036    
4037    /a[^-b]c/
4038        adc
4039     0: adc
4040    
4041    /a[^]b]c/
4042        adc
4043     0: adc
4044        *** Failers
4045    No match
4046        a-c
4047     0: a-c
4048        a]c
4049    No match
4050    
4051    /\ba\b/
4052        a-
4053     0: a
4054        -a
4055     0: a
4056        -a-
4057     0: a
4058    
4059    /\by\b/
4060        *** Failers
4061    No match
4062        xy
4063    No match
4064        yz
4065    No match
4066        xyz
4067    No match
4068    
4069    /\Ba\B/
4070        *** Failers
4071     0: a
4072        a-
4073    No match
4074        -a
4075    No match
4076        -a-
4077    No match
4078    
4079    /\By\b/
4080        xy
4081     0: y
4082    
4083    /\by\B/
4084        yz
4085     0: y
4086    
4087    /\By\B/
4088        xyz
4089     0: y
4090    
4091    /\w/
4092        a
4093     0: a
4094    
4095    /\W/
4096        -
4097     0: -
4098        *** Failers
4099     0: *
4100        -
4101     0: -
4102        a
4103    No match
4104    
4105    /a\sb/
4106        a b
4107     0: a b
4108    
4109    /a\Sb/
4110        a-b
4111     0: a-b
4112        *** Failers
4113    No match
4114        a-b
4115     0: a-b
4116        a b
4117    No match
4118    
4119    /\d/
4120        1
4121     0: 1
4122    
4123    /\D/
4124        -
4125     0: -
4126        *** Failers
4127     0: *
4128        -
4129     0: -
4130        1
4131    No match
4132    
4133    /[\w]/
4134        a
4135     0: a
4136    
4137    /[\W]/
4138        -
4139     0: -
4140        *** Failers
4141     0: *
4142        -
4143     0: -
4144        a
4145    No match
4146    
4147    /a[\s]b/
4148        a b
4149     0: a b
4150    
4151    /a[\S]b/
4152        a-b
4153     0: a-b
4154        *** Failers
4155    No match
4156        a-b
4157     0: a-b
4158        a b
4159    No match
4160    
4161    /[\d]/
4162        1
4163     0: 1
4164    
4165    /[\D]/
4166        -
4167     0: -
4168        *** Failers
4169     0: *
4170        -
4171     0: -
4172        1
4173    No match
4174    
4175    /ab|cd/
4176        abc
4177     0: ab
4178        abcd
4179     0: ab
4180    
4181    /()ef/
4182        def
4183     0: ef
4184     1:
4185    
4186    /$b/
4187    
4188    /a\(b/
4189        a(b
4190     0: a(b
4191    
4192    /a\(*b/
4193        ab
4194     0: ab
4195        a((b
4196     0: a((b
4197    
4198    /a\\b/
4199        a\b
4200    No match
4201    
4202    /((a))/
4203        abc
4204     0: a
4205     1: a
4206     2: a
4207    
4208    /(a)b(c)/
4209        abc
4210     0: abc
4211     1: a
4212     2: c
4213    
4214    /a+b+c/
4215        aabbabc
4216     0: abc
4217    
4218    /a{1,}b{1,}c/
4219        aabbabc
4220     0: abc
4221    
4222    /a.+?c/
4223        abcabc
4224     0: abc
4225    
4226    /(a+|b)*/
4227        ab
4228     0: ab
4229     1: b
4230    
4231    /(a+|b){0,}/
4232        ab
4233     0: ab
4234     1: b
4235    
4236    /(a+|b)+/
4237        ab
4238     0: ab
4239     1: b
4240    
4241    /(a+|b){1,}/
4242        ab
4243     0: ab
4244     1: b
4245    
4246    /(a+|b)?/
4247        ab
4248     0: a
4249     1: a
4250    
4251    /(a+|b){0,1}/
4252        ab
4253     0: a
4254     1: a
4255    
4256    /[^ab]*/
4257        cde
4258     0: cde
4259    
4260    /abc/
4261        *** Failers
4262    No match
4263        b
4264    No match
4265    
4266    
4267    /a*/
4268    
4269    
4270    /([abc])*d/
4271        abbbcd
4272     0: abbbcd
4273     1: c
4274    
4275    /([abc])*bcd/
4276        abcd
4277     0: abcd
4278     1: a
4279    
4280    /a|b|c|d|e/
4281        e
4282     0: e
4283    
4284    /(a|b|c|d|e)f/
4285        ef
4286     0: ef
4287     1: e
4288    
4289    /abcd*efg/
4290        abcdefg
4291     0: abcdefg
4292    
4293    /ab*/
4294        xabyabbbz
4295     0: ab
4296        xayabbbz
4297     0: a
4298    
4299    /(ab|cd)e/
4300        abcde
4301     0: cde
4302     1: cd
4303    
4304    /[abhgefdc]ij/
4305        hij
4306     0: hij
4307    
4308    /^(ab|cd)e/
4309    
4310    /(abc|)ef/
4311        abcdef
4312     0: ef
4313     1:
4314    
4315    /(a|b)c*d/
4316        abcd
4317     0: bcd
4318     1: b
4319    
4320    /(ab|ab*)bc/
4321        abc
4322     0: abc
4323     1: a
4324    
4325    /a([bc]*)c*/
4326        abc
4327     0: abc
4328     1: bc
4329    
4330    /a([bc]*)(c*d)/
4331        abcd
4332     0: abcd
4333     1: bc
4334     2: d
4335    
4336    /a([bc]+)(c*d)/
4337        abcd
4338     0: abcd
4339     1: bc
4340     2: d
4341    
4342    /a([bc]*)(c+d)/
4343        abcd
4344     0: abcd
4345     1: b
4346     2: cd
4347    
4348    /a[bcd]*dcdcde/
4349        adcdcde
4350     0: adcdcde
4351    
4352    /a[bcd]+dcdcde/
4353        *** Failers
4354    No match
4355        abcde
4356    No match
4357        adcdcde
4358    No match
4359    
4360    /(ab|a)b*c/
4361        abc
4362     0: abc
4363     1: ab
4364    
4365    /((a)(b)c)(d)/
4366        abcd
4367     0: abcd
4368     1: abc
4369     2: a
4370     3: b
4371     4: d
4372    
4373    /[a-zA-Z_][a-zA-Z0-9_]*/
4374        alpha
4375     0: alpha
4376    
4377    /^a(bc+|b[eh])g|.h$/
4378        abh
4379     0: bh
4380    
4381    /(bc+d$|ef*g.|h?i(j|k))/
4382        effgz
4383     0: effgz
4384     1: effgz
4385        ij
4386     0: ij
4387     1: ij
4388     2: j
4389        reffgz
4390     0: effgz
4391     1: effgz
4392        *** Failers
4393    No match
4394        effg
4395    No match
4396        bcdd
4397    No match
4398    
4399    /((((((((((a))))))))))/
4400        a
4401     0: a
4402     1: a
4403     2: a
4404     3: a
4405     4: a
4406     5: a
4407     6: a
4408     7: a
4409     8: a
4410     9: a
4411    10: a
4412    
4413    /((((((((((a))))))))))\10/
4414        aa
4415     0: aa
4416     1: a
4417     2: a
4418     3: a
4419     4: a
4420     5: a
4421     6: a
4422     7: a
4423     8: a
4424     9: a
4425    10: a
4426    
4427    /(((((((((a)))))))))/
4428        a
4429     0: a
4430     1: a
4431     2: a
4432     3: a
4433     4: a
4434     5: a
4435     6: a
4436     7: a
4437     8: a
4438     9: a
4439    
4440    /multiple words of text/
4441        *** Failers
4442    No match
4443        aa
4444    No match
4445        uh-uh
4446    No match
4447    
4448    /multiple words/
4449        multiple words, yeah
4450     0: multiple words
4451    
4452    /(.*)c(.*)/
4453        abcde
4454     0: abcde
4455     1: ab
4456     2: de
4457    
4458    /\((.*), (.*)\)/
4459        (a, b)
4460     0: (a, b)
4461     1: a
4462     2: b
4463    
4464    /[k]/
4465    
4466    /abcd/
4467        abcd
4468     0: abcd
4469    
4470    /a(bc)d/
4471        abcd
4472     0: abcd
4473     1: bc
4474    
4475    /a[-]?c/
4476        ac
4477     0: ac
4478    
4479    /(abc)\1/
4480        abcabc
4481     0: abcabc
4482     1: abc
4483    
4484    /([a-c]*)\1/
4485        abcabc
4486     0: abcabc
4487     1: abc
4488    
4489    /(a)|\1/
4490        a
4491     0: a
4492     1: a
4493        *** Failers
4494     0: a
4495     1: a
4496        ab
4497     0: a
4498     1: a
4499        x
4500    No match
4501    
4502    /(([a-c])b*?\2)*/
4503        ababbbcbc
4504     0: ababb
4505     1: bb
4506     2: b
4507    
4508    /(([a-c])b*?\2){3}/
4509        ababbbcbc
4510     0: ababbbcbc
4511     1: cbc
4512     2: c
4513    
4514    /((\3|b)\2(a)x)+/
4515        aaaxabaxbaaxbbax
4516     0: bbax
4517     1: bbax
4518     2: b
4519     3: a
4520    
4521    /((\3|b)\2(a)){2,}/
4522        bbaababbabaaaaabbaaaabba
4523     0: bbaaaabba
4524     1: bba
4525     2: b
4526     3: a
4527    
4528    /abc/i
4529        ABC
4530     0: ABC
4531        XABCY
4532     0: ABC
4533        ABABC
4534     0: ABC
4535        *** Failers
4536    No match
4537        aaxabxbaxbbx
4538    No match
4539        XBC
4540    No match
4541        AXC
4542    No match
4543        ABX
4544    No match
4545    
4546    /ab*c/i
4547        ABC
4548     0: ABC
4549    
4550    /ab*bc/i
4551        ABC
4552     0: ABC
4553        ABBC
4554     0: ABBC
4555    
4556    /ab*?bc/i
4557        ABBBBC
4558     0: ABBBBC
4559    
4560    /ab{0,}?bc/i
4561        ABBBBC
4562     0: ABBBBC
4563    
4564    /ab+?bc/i
4565        ABBC
4566     0: ABBC
4567    
4568    /ab+bc/i
4569        *** Failers
4570    No match
4571        ABC
4572    No match
4573        ABQ
4574    No match
4575    
4576    /ab{1,}bc/i
4577    
4578    /ab+bc/i
4579        ABBBBC
4580     0: ABBBBC
4581    
4582    /ab{1,}?bc/i
4583        ABBBBC
4584     0: ABBBBC
4585    
4586    /ab{1,3}?bc/i
4587        ABBBBC
4588     0: ABBBBC
4589    
4590    /ab{3,4}?bc/i
4591        ABBBBC
4592     0: ABBBBC
4593    
4594    /ab{4,5}?bc/i
4595        *** Failers
4596    No match
4597        ABQ
4598    No match
4599        ABBBBC
4600    No match
4601    
4602    /ab??bc/i
4603        ABBC
4604     0: ABBC
4605        ABC
4606     0: ABC
4607    
4608    /ab{0,1}?bc/i
4609        ABC
4610     0: ABC
4611    
4612    /ab??bc/i
4613    
4614    /ab??c/i
4615        ABC
4616     0: ABC
4617    
4618    /ab{0,1}?c/i
4619        ABC
4620     0: ABC
4621    
4622    /^abc$/i
4623        ABC
4624     0: ABC
4625        *** Failers
4626    No match
4627        ABBBBC
4628    No match
4629        ABCC
4630    No match
4631    
4632    /^abc/i
4633        ABCC
4634     0: ABC
4635    
4636    /^abc$/i
4637    
4638    /abc$/i
4639        AABC
4640     0: ABC
4641    
4642    /^/i
4643        ABC
4644     0:
4645    
4646    /$/i
4647        ABC
4648     0:
4649    
4650    /a.c/i
4651        ABC
4652     0: ABC
4653        AXC
4654     0: AXC
4655    
4656    /a.*?c/i
4657        AXYZC
4658     0: AXYZC
4659    
4660    /a.*c/i
4661        *** Failers
4662    No match
4663        AABC
4664     0: AABC
4665        AXYZD
4666    No match
4667    
4668    /a[bc]d/i
4669        ABD
4670     0: ABD
4671    
4672    /a[b-d]e/i
4673        ACE
4674     0: ACE
4675        *** Failers
4676    No match
4677        ABC
4678    No match
4679        ABD
4680    No match
4681    
4682    /a[b-d]/i
4683        AAC
4684     0: AC
4685    
4686    /a[-b]/i
4687        A-
4688     0: A-
4689    
4690    /a[b-]/i
4691        A-
4692     0: A-
4693    
4694    /a]/i
4695        A]
4696     0: A]
4697    
4698    /a[]]b/i
4699        A]B
4700     0: A]B
4701    
4702    /a[^bc]d/i
4703        AED
4704     0: AED
4705    
4706    /a[^-b]c/i
4707        ADC
4708     0: ADC
4709        *** Failers
4710    No match
4711        ABD
4712    No match
4713        A-C
4714    No match
4715    
4716    /a[^]b]c/i
4717        ADC
4718     0: ADC
4719    
4720    /ab|cd/i
4721        ABC
4722     0: AB
4723        ABCD
4724     0: AB
4725    
4726    /()ef/i
4727        DEF
4728     0: EF
4729     1:
4730    
4731    /$b/i
4732        *** Failers
4733    No match
4734        A]C
4735    No match
4736        B
4737    No match
4738    
4739    /a\(b/i
4740        A(B
4741     0: A(B
4742    
4743    /a\(*b/i
4744        AB
4745     0: AB
4746        A((B
4747     0: A((B
4748    
4749    /a\\b/i
4750        A\B
4751    No match
4752    
4753    /((a))/i
4754        ABC
4755     0: A
4756     1: A
4757     2: A
4758    
4759    /(a)b(c)/i
4760        ABC
4761     0: ABC
4762     1: A
4763     2: C
4764    
4765    /a+b+c/i
4766        AABBABC
4767     0: ABC
4768    
4769    /a{1,}b{1,}c/i
4770        AABBABC
4771     0: ABC
4772    
4773    /a.+?c/i
4774        ABCABC
4775     0: ABC
4776    
4777    /a.*?c/i
4778        ABCABC
4779     0: ABC
4780    
4781    /a.{0,5}?c/i
4782        ABCABC
4783     0: ABC
4784    
4785    /(a+|b)*/i
4786        AB
4787     0: AB
4788     1: B
4789    
4790    /(a+|b){0,}/i
4791        AB
4792     0: AB
4793     1: B
4794    
4795    /(a+|b)+/i
4796        AB
4797     0: AB
4798     1: B
4799    
4800    /(a+|b){1,}/i
4801        AB
4802     0: AB
4803     1: B
4804    
4805    /(a+|b)?/i
4806        AB
4807     0: A
4808     1: A
4809    
4810    /(a+|b){0,1}/i
4811        AB
4812     0: A
4813     1: A
4814    
4815    /(a+|b){0,1}?/i
4816        AB
4817     0:
4818    
4819    /[^ab]*/i
4820        CDE
4821     0: CDE
4822    
4823    /abc/i
4824    
4825    /a*/i
4826    
4827    
4828    /([abc])*d/i
4829        ABBBCD
4830     0: ABBBCD
4831     1: C
4832    
4833    /([abc])*bcd/i
4834        ABCD
4835     0: ABCD
4836     1: A
4837    
4838    /a|b|c|d|e/i
4839        E
4840     0: E
4841    
4842    /(a|b|c|d|e)f/i
4843        EF
4844     0: EF
4845     1: E
4846    
4847    /abcd*efg/i
4848        ABCDEFG
4849     0: ABCDEFG
4850    
4851    /ab*/i
4852        XABYABBBZ
4853     0: AB
4854        XAYABBBZ
4855     0: A
4856    
4857    /(ab|cd)e/i
4858        ABCDE
4859     0: CDE
4860     1: CD
4861    
4862    /[abhgefdc]ij/i
4863        HIJ
4864     0: HIJ
4865    
4866    /^(ab|cd)e/i
4867        ABCDE
4868    No match
4869    
4870    /(abc|)ef/i
4871        ABCDEF
4872     0: EF
4873     1:
4874    
4875    /(a|b)c*d/i
4876        ABCD
4877     0: BCD
4878     1: B
4879    
4880    /(ab|ab*)bc/i
4881        ABC
4882     0: ABC
4883     1: A
4884    
4885    /a([bc]*)c*/i
4886        ABC
4887     0: ABC
4888     1: BC
4889    
4890    /a([bc]*)(c*d)/i
4891        ABCD
4892     0: ABCD
4893     1: BC
4894     2: D
4895    
4896    /a([bc]+)(c*d)/i
4897        ABCD
4898     0: ABCD
4899     1: BC
4900     2: D
4901    
4902    /a([bc]*)(c+d)/i
4903        ABCD
4904     0: ABCD
4905     1: B
4906     2: CD
4907    
4908    /a[bcd]*dcdcde/i
4909        ADCDCDE
4910     0: ADCDCDE
4911    
4912    /a[bcd]+dcdcde/i
4913    
4914    /(ab|a)b*c/i
4915        ABC
4916     0: ABC
4917     1: AB
4918    
4919    /((a)(b)c)(d)/i
4920        ABCD
4921     0: ABCD
4922     1: ABC
4923     2: A
4924     3: B
4925     4: D
4926    
4927    /[a-zA-Z_][a-zA-Z0-9_]*/i
4928        ALPHA
4929     0: ALPHA
4930    
4931    /^a(bc+|b[eh])g|.h$/i
4932        ABH
4933     0: BH
4934    
4935    /(bc+d$|ef*g.|h?i(j|k))/i
4936        EFFGZ
4937     0: EFFGZ
4938     1: EFFGZ
4939        IJ
4940     0: IJ
4941     1: IJ
4942     2: J
4943        REFFGZ
4944     0: EFFGZ
4945     1: EFFGZ
4946        *** Failers
4947    No match
4948        ADCDCDE
4949    No match
4950        EFFG
4951    No match
4952        BCDD
4953    No match
4954    
4955    /((((((((((a))))))))))/i
4956        A
4957     0: A
4958     1: A
4959     2: A
4960     3: A
4961     4: A
4962     5: A
4963     6: A
4964     7: A
4965     8: A
4966     9: A
4967    10: A
4968    
4969    /((((((((((a))))))))))\10/i
4970        AA
4971     0: AA
4972     1: A
4973     2: A
4974     3: A
4975     4: A
4976     5: A
4977     6: A
4978     7: A
4979     8: A
4980     9: A
4981    10: A
4982    
4983    /(((((((((a)))))))))/i
4984        A
4985     0: A
4986     1: A
4987     2: A
4988     3: A
4989     4: A
4990     5: A
4991     6: A
4992     7: A
4993     8: A
4994     9: A
4995    
4996    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
4997        A
4998     0: A
4999     1: A
5000    
5001    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
5002        C
5003     0: C
5004     1: C
5005    
5006    /multiple words of text/i
5007        *** Failers
5008    No match
5009        AA
5010    No match
5011        UH-UH
5012    No match
5013    
5014    /multiple words/i
5015        MULTIPLE WORDS, YEAH
5016     0: MULTIPLE WORDS
5017    
5018    /(.*)c(.*)/i
5019        ABCDE
5020     0: ABCDE
5021     1: AB
5022     2: DE
5023    
5024    /\((.*), (.*)\)/i
5025        (A, B)
5026     0: (A, B)
5027     1: A
5028     2: B
5029    
5030    /[k]/i
5031    
5032    /abcd/i
5033        ABCD
5034     0: ABCD
5035    
5036    /a(bc)d/i
5037        ABCD
5038     0: ABCD
5039     1: BC
5040    
5041    /a[-]?c/i
5042        AC
5043     0: AC
5044    
5045    /(abc)\1/i
5046        ABCABC
5047     0: ABCABC
5048     1: ABC
5049    
5050    /([a-c]*)\1/i
5051        ABCABC
5052     0: ABCABC
5053     1: ABC
5054    
5055    /a(?!b)./
5056        abad
5057     0: ad
5058    
5059    /a(?=d)./
5060        abad
5061     0: ad
5062    
5063    /a(?=c|d)./
5064        abad
5065     0: ad
5066    
5067    /a(?:b|c|d)(.)/
5068        ace
5069     0: ace
5070     1: e
5071    
5072    /a(?:b|c|d)*(.)/
5073        ace
5074     0: ace
5075     1: e
5076    
5077    /a(?:b|c|d)+?(.)/
5078        ace
5079     0: ace
5080     1: e
5081        acdbcdbe
5082     0: acd
5083     1: d
5084    
5085    /a(?:b|c|d)+(.)/
5086        acdbcdbe
5087     0: acdbcdbe
5088     1: e
5089    
5090    /a(?:b|c|d){2}(.)/
5091        acdbcdbe
5092     0: acdb
5093     1: b
5094    
5095    /a(?:b|c|d){4,5}(.)/
5096        acdbcdbe
5097     0: acdbcdb
5098     1: b
5099    
5100    /a(?:b|c|d){4,5}?(.)/
5101        acdbcdbe
5102     0: acdbcd
5103     1: d
5104    
5105    /((foo)|(bar))*/
5106        foobar
5107     0: foobar
5108     1: bar
5109     2: foo
5110     3: bar
5111    
5112    /a(?:b|c|d){6,7}(.)/
5113        acdbcdbe
5114     0: acdbcdbe
5115     1: e
5116    
5117    /a(?:b|c|d){6,7}?(.)/
5118        acdbcdbe
5119     0: acdbcdbe
5120     1: e
5121    
5122    /a(?:b|c|d){5,6}(.)/
5123        acdbcdbe
5124     0: acdbcdbe
5125     1: e
5126    
5127    /a(?:b|c|d){5,6}?(.)/
5128        acdbcdbe
5129     0: acdbcdb
5130     1: b
5131    
5132    /a(?:b|c|d){5,7}(.)/
5133        acdbcdbe
5134     0: acdbcdbe
5135     1: e
5136    
5137    /a(?:b|c|d){5,7}?(.)/
5138        acdbcdbe
5139     0: acdbcdb
5140     1: b
5141    
5142    /a(?:b|(c|e){1,2}?|d)+?(.)/
5143        ace
5144     0: ace
5145     1: c
5146     2: e
5147    
5148    /^(.+)?B/
5149        AB
5150     0: AB
5151     1: A
5152    
5153    /^([^a-z])|(\^)$/
5154        .
5155     0: .
5156     1: .
5157    
5158    /^[<>]&/
5159        <&OUT
5160     0: <&
5161    
5162    /^(a\1?){4}$/
5163        aaaaaaaaaa
5164     0: aaaaaaaaaa
5165     1: aaaa
5166        *** Failers
5167    No match
5168        AB
5169    No match
5170        aaaaaaaaa
5171    No match
5172        aaaaaaaaaaa
5173    No match
5174    
5175    /^(a(?(1)\1)){4}$/
5176        aaaaaaaaaa
5177     0: aaaaaaaaaa
5178     1: aaaa
5179        *** Failers
5180    No match
5181        aaaaaaaaa
5182    No match
5183        aaaaaaaaaaa
5184    No match
5185    
5186    /(?:(f)(o)(o)|(b)(a)(r))*/
5187        foobar
5188     0: foobar
5189     1: f
5190     2: o
5191     3: o
5192     4: b
5193     5: a
5194     6: r
5195    
5196    /(?<=a)b/
5197        ab
5198     0: b
5199        *** Failers
5200    No match
5201        cb
5202    No match
5203        b
5204    No match
5205    
5206    /(?<!c)b/
5207        ab
5208     0: b
5209        b
5210     0: b
5211        b
5212     0: b
5213    
5214    /(?:..)*a/
5215        aba
5216     0: aba
5217    
5218    /(?:..)*?a/
5219        aba
5220     0: a
5221    
5222    /^(?:b|a(?=(.)))*\1/
5223        abc
5224     0: ab
5225     1: b
5226    
5227    /^(){3,5}/
5228        abc
5229     0:
5230     1:
5231    
5232    /^(a+)*ax/
5233        aax
5234     0: aax
5235     1: a
5236    
5237    /^((a|b)+)*ax/
5238        aax
5239     0: aax
5240     1: a
5241     2: a
5242    
5243    /^((a|bc)+)*ax/
5244        aax
5245     0: aax
5246     1: a
5247     2: a
5248    
5249    /(a|x)*ab/
5250        cab
5251     0: ab
5252    
5253    /(a)*ab/
5254        cab
5255     0: ab
5256    
5257    /(?:(?i)a)b/
5258        ab
5259     0: ab
5260    
5261    /((?i)a)b/
5262        ab
5263     0: ab
5264     1: a
5265    
5266    /(?:(?i)a)b/
5267        Ab
5268     0: Ab
5269    
5270    /((?i)a)b/
5271        Ab
5272     0: Ab
5273     1: A
5274    
5275    /(?:(?i)a)b/
5276        *** Failers
5277    No match
5278        cb
5279    No match
5280        aB
5281    No match
5282    
5283    /((?i)a)b/
5284    
5285    /(?i:a)b/
5286        ab
5287     0: ab
5288    
5289    /((?i:a))b/
5290        ab
5291     0: ab
5292     1: a
5293    
5294    /(?i:a)b/
5295        Ab
5296     0: Ab
5297    
5298    /((?i:a))b/
5299        Ab
5300     0: Ab
5301     1: A
5302    
5303    /(?i:a)b/
5304        *** Failers
5305    No match
5306        aB
5307    No match
5308        aB
5309    No match
5310    
5311    /((?i:a))b/
5312    
5313    /(?:(?-i)a)b/i
5314        ab
5315     0: ab
5316    
5317    /((?-i)a)b/i
5318        ab
5319     0: ab
5320     1: a
5321    
5322    /(?:(?-i)a)b/i
5323        aB
5324     0: aB
5325    
5326    /((?-i)a)b/i
5327        aB
5328     0: aB
5329     1: a
5330    
5331    /(?:(?-i)a)b/i
5332        *** Failers
5333    No match
5334        aB
5335     0: aB
5336        Ab
5337    No match
5338    
5339    /((?-i)a)b/i
5340    
5341    /(?:(?-i)a)b/i
5342        aB
5343     0: aB
5344    
5345    /((?-i)a)b/i
5346        aB
5347     0: aB
5348     1: a
5349    
5350    /(?:(?-i)a)b/i
5351        *** Failers
5352    No match
5353        Ab
5354    No match
5355        AB
5356    No match
5357    
5358    /((?-i)a)b/i
5359    
5360    /(?-i:a)b/i
5361        ab
5362     0: ab
5363    
5364    /((?-i:a))b/i
5365        ab
5366     0: ab
5367     1: a
5368    
5369    /(?-i:a)b/i
5370        aB
5371     0: aB
5372    
5373    /((?-i:a))b/i
5374        aB
5375     0: aB
5376     1: a
5377    
5378    /(?-i:a)b/i
5379        *** Failers
5380    No match
5381        AB
5382    No match
5383        Ab
5384    No match
5385    
5386    /((?-i:a))b/i
5387    
5388    /(?-i:a)b/i
5389        aB
5390     0: aB
5391    
5392    /((?-i:a))b/i
5393        aB
5394     0: aB
5395     1: a
5396    
5397    /(?-i:a)b/i
5398        *** Failers
5399    No match
5400        Ab
5401    No match
5402        AB
5403    No match
5404    
5405    /((?-i:a))b/i
5406    
5407    /((?-i:a.))b/i
5408        *** Failers
5409    No match
5410        AB
5411    No match
5412        a\nB
5413    No match
5414    
5415    /((?s-i:a.))b/i
5416        a\nB
5417     0: a\x0aB
5418     1: a\x0a
5419    
5420    /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
5421        cabbbb
5422     0: cabbbb
5423    
5424    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
5425        caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5426     0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5427    
5428    /(ab)\d\1/i
5429        Ab4ab
5430     0: Ab4ab
5431     1: Ab
5432        ab4Ab
5433     0: ab4Ab
5434     1: ab
5435    
5436    /foo\w*\d{4}baz/
5437        foobar1234baz
5438     0: foobar1234baz
5439    
5440    /x(~~)*(?:(?:F)?)?/
5441        x~~
5442     0: x~~
5443     1: ~~
5444    
5445    /^a(?#xxx){3}c/
5446        aaac
5447     0: aaac
5448    
5449    /^a (?#xxx) (?#yyy) {3}c/x
5450        aaac
5451     0: aaac
5452    
5453    /(?<![cd])b/
5454        *** Failers
5455    No match
5456        B\nB
5457    No match
5458        dbcb
5459    No match
5460    
5461    /(?<![cd])[ab]/
5462        dbaacb
5463     0: a
5464    
5465    /(?<!(c|d))b/
5466    
5467    /(?<!(c|d))[ab]/
5468        dbaacb
5469     0: a
5470    
5471    /(?<!cd)[ab]/
5472        cdaccb
5473     0: b
5474    
5475    /^(?:a?b?)*$/
5476        \
5477     0:
5478        a
5479     0: a
5480        ab
5481     0: ab
5482        aaa
5483     0: aaa
5484        *** Failers
5485    No match
5486        dbcb
5487    No match
5488        a--
5489    No match
5490        aa--
5491    No match
5492    
5493    /((?s)^a(.))((?m)^b$)/
5494        a\nb\nc\n
5495     0: a\x0ab
5496     1: a\x0a
5497     2: \x0a
5498     3: b
5499    
5500    /((?m)^b$)/
5501        a\nb\nc\n
5502     0: b
5503     1: b
5504    
5505    /(?m)^b/
5506        a\nb\n
5507     0: b
5508    
5509    /(?m)^(b)/
5510        a\nb\n
5511     0: b
5512     1: b
5513    
5514    /((?m)^b)/
5515        a\nb\n
5516     0: b
5517     1: b
5518    
5519    /\n((?m)^b)/
5520        a\nb\n
5521     0: \x0ab
5522     1: b
5523    
5524    /((?s).)c(?!.)/
5525        a\nb\nc\n
5526     0: \x0ac
5527     1: \x0a
5528        a\nb\nc\n
5529     0: \x0ac
5530     1: \x0a
5531    
5532    /((?s)b.)c(?!.)/
5533        a\nb\nc\n
5534     0: b\x0ac
5535     1: b\x0a
5536        a\nb\nc\n
5537     0: b\x0ac
5538     1: b\x0a
5539    
5540    /^b/
5541    
5542    /()^b/
5543        *** Failers
5544    No match
5545        a\nb\nc\n
5546    No match
5547        a\nb\nc\n
5548    No match
5549    
5550    /((?m)^b)/
5551        a\nb\nc\n
5552     0: b
5553     1: b
5554    
5555    /(x)?(?(1)a|b)/
5556        *** Failers
5557    No match
5558        a
5559    No match
5560        a
5561    No match
5562    
5563    /(x)?(?(1)b|a)/
5564        a
5565     0: a
5566    
5567    /()?(?(1)b|a)/
5568        a
5569     0: a
5570    
5571    /()(?(1)b|a)/
5572    
5573    /()?(?(1)a|b)/
5574        a
5575     0: a
5576     1:
5577    
5578    /^(\()?blah(?(1)(\)))$/
5579        (blah)
5580     0: (blah)
5581     1: (
5582     2: )
5583        blah
5584     0: blah
5585        *** Failers
5586    No match
5587        a
5588    No match
5589        blah)
5590    No match
5591        (blah
5592    No match
5593    
5594    /^(\(+)?blah(?(1)(\)))$/
5595        (blah)
5596     0: (blah)
5597     1: (
5598     2: )
5599        blah
5600     0: blah
5601        *** Failers
5602    No match
5603        blah)
5604    No match
5605        (blah
5606    No match
5607    
5608    /(?(?!a)a|b)/
5609    
5610    /(?(?!a)b|a)/
5611        a
5612     0: a
5613    
5614    /(?(?=a)b|a)/
5615        *** Failers
5616    No match
5617        a
5618    No match
5619        a
5620    No match
5621    
5622    /(?(?=a)a|b)/
5623        a
5624     0: a
5625    
5626    /(?=(a+?))(\1ab)/
5627        aaab
5628     0: aab
5629     1: a
5630     2: aab
5631    
5632    /^(?=(a+?))\1ab/
5633    
5634    /(\w+:)+/
5635        one:
5636     0: one:
5637     1: one:
5638    
5639    /$(?<=^(a))/
5640        a
5641     0:
5642     1: a
5643    
5644    /(?=(a+?))(\1ab)/
5645        aaab
5646     0: aab
5647     1: a
5648     2: aab
5649    
5650    /^(?=(a+?))\1ab/
5651        *** Failers
5652    No match
5653        aaab
5654    No match
5655        aaab
5656    No match
5657    
5658    /([\w:]+::)?(\w+)$/
5659        abcd
5660     0: abcd
5661     1: <unset>
5662     2: abcd
5663        xy:z:::abcd
5664     0: xy:z:::abcd
5665     1: xy:z:::
5666     2: abcd
5667    
5668    /^[^bcd]*(c+)/
5669        aexycd
5670     0: aexyc
5671     1: c
5672    
5673    /(a*)b+/
5674        caab
5675     0: aab
5676     1: aa
5677    
5678    /([\w:]+::)?(\w+)$/
5679        abcd
5680     0: abcd
5681     1: <unset>
5682     2: abcd
5683        xy:z:::abcd
5684     0: xy:z:::abcd
5685     1: xy:z:::
5686     2: abcd
5687        *** Failers
5688     0: Failers
5689     1: <unset>
5690     2: Failers
5691        abcd:
5692    No match
5693        abcd:
5694    No match
5695    
5696    /^[^bcd]*(c+)/
5697        aexycd
5698     0: aexyc
5699     1: c
5700    
5701    /(>a+)ab/
5702    
5703    /(?>a+)b/
5704        aaab
5705     0: aaab
5706    
5707    /([[:]+)/
5708        a:[b]:
5709     0: :[
5710     1: :[
5711    
5712    /([[=]+)/
5713        a=[b]=
5714     0: =[
5715     1: =[
5716    
5717    /([[.]+)/
5718        a.[b].
5719     0: .[
5720     1: .[
5721    
5722    /((?>a+)b)/
5723        aaab
5724     0: aaab
5725     1: aaab
5726    
5727    /(?>(a+))b/
5728        aaab
5729     0: aaab
5730     1: aaa
5731    
5732    /((?>[^()]+)|\([^()]*\))+/
5733        ((abc(ade)ufh()()x
5734     0: abc(ade)ufh()()x
5735     1: x
5736    
5737    /a\Z/
5738        *** Failers
5739    No match
5740        aaab
5741    No match
5742        a\nb\n
5743    No match
5744    
5745    /b\Z/
5746        a\nb\n
5747     0: b
5748    
5749    /b\z/
5750    
5751    /b\Z/
5752        a\nb
5753     0: b
5754    
5755    /b\z/
5756        a\nb
5757     0: b
5758        *** Failers
5759    No match
5760    
5761    /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
5762        a
5763     0: a
5764     1:
5765        abc
5766     0: abc
5767     1:
5768        a-b
5769     0: a-b
5770     1:
5771        0-9
5772     0: 0-9
5773     1:
5774        a.b
5775     0: a.b
5776     1:
5777        5.6.7
5778     0: 5.6.7
5779     1:
5780        the.quick.brown.fox
5781     0: the.quick.brown.fox
5782     1:
5783        a100.b200.300c
5784     0: a100.b200.300c
5785     1:
5786        12-ab.1245
5787     0: 12-ab.1245
5788     1:
5789        *** Failers
5790    No match
5791        \
5792    No match
5793        .a
5794    No match
5795        -a
5796    No match
5797        a-
5798    No match
5799        a.
5800    No match
5801        a_b
5802    No match
5803        a.-
5804    No match
5805        a..
5806    No match
5807        ab..bc
5808    No match
5809        the.quick.brown.fox-
5810    No match
5811        the.quick.brown.fox.
5812    No match
5813        the.quick.brown.fox_
5814    No match
5815        the.quick.brown.fox+
5816    No match
5817    
5818    /(?>.*)(?<=(abcd|wxyz))/
5819        alphabetabcd
5820     0: alphabetabcd
5821     1: abcd
5822        endingwxyz
5823     0: endingwxyz
5824     1: wxyz
5825        *** Failers
5826    No match
5827        a rather long string that doesn't end with one of them
5828    No match
5829    
5830    /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
5831        word cat dog elephant mussel cow horse canary baboon snake shark otherword
5832     0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
5833        word cat dog elephant mussel cow horse canary baboon snake shark
5834    No match
5835    
5836    /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
5837        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
5838    No match
5839    
5840    /(?<=\d{3}(?!999))foo/
5841        999foo
5842     0: foo
5843        123999foo
5844     0: foo
5845        *** Failers
5846    No match
5847        123abcfoo
5848    No match
5849    
5850    /(?<=(?!...999)\d{3})foo/
5851        999foo
5852     0: foo
5853        123999foo
5854     0: foo
5855        *** Failers
5856    No match
5857        123abcfoo
5858    No match
5859    
5860    /(?<=\d{3}(?!999)...)foo/
5861        123abcfoo
5862     0: foo
5863        123456foo
5864     0: foo
5865        *** Failers
5866    No match
5867        123999foo
5868    No match
5869    
5870    /(?<=\d{3}...)(?<!999)foo/
5871        123abcfoo
5872     0: foo
5873        123456foo
5874     0: foo
5875        *** Failers
5876    No match
5877        123999foo
5878    No match
5879    
5880    /<a[\s]+href[\s]*=[\s]*          # find <a href=
5881     ([\"\'])?                       # find single or double quote
5882     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
5883                                     # quote, otherwise match up to next space
5884    /isx
5885        <a href=abcd xyz
5886     0: <a href=abcd
5887     1: <unset>
5888     2: <unset>
5889     3: abcd
5890        <a href=\"abcd xyz pqr\" cats
5891     0: <a href="abcd xyz pqr"
5892     1: "
5893     2: abcd xyz pqr
5894        <a href=\'abcd xyz pqr\' cats
5895     0: <a href='abcd xyz pqr'
5896     1: '
5897     2: abcd xyz pqr
5898    
5899    /<a\s+href\s*=\s*                # find <a href=
5900     (["'])?                         # find single or double quote
5901     (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
5902                                     # quote, otherwise match up to next space
5903    /isx
5904        <a href=abcd xyz
5905     0: <a href=abcd
5906     1: <unset>
5907     2: <unset>
5908     3: abcd
5909        <a href=\"abcd xyz pqr\" cats
5910     0: <a href="abcd xyz pqr"
5911     1: "
5912     2: abcd xyz pqr
5913        <a href       =       \'abcd xyz pqr\' cats
5914     0: <a href       =       'abcd xyz pqr'
5915     1: '
5916     2: abcd xyz pqr
5917    
5918    /<a\s+href(?>\s*)=(?>\s*)        # find <a href=
5919     (["'])?                         # find single or double quote
5920     (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
5921                                     # quote, otherwise match up to next space
5922    /isx
5923        <a href=abcd xyz
5924     0: <a href=abcd
5925     1: <unset>
5926     2: <unset>
5927     3: abcd
5928        <a href=\"abcd xyz pqr\" cats
5929     0: <a href="abcd xyz pqr"
5930     1: "
5931     2: abcd xyz pqr
5932        <a href       =       \'abcd xyz pqr\' cats
5933     0: <a href       =       'abcd xyz pqr'
5934     1: '
5935     2: abcd xyz pqr
5936    
5937    /((Z)+|A)*/
5938        ZABCDEFG
5939     0: ZA
5940     1: A
5941     2: Z
5942    
5943    /(Z()|A)*/
5944        ZABCDEFG
5945     0: ZA
5946     1: A
5947     2:
5948    
5949    /(Z(())|A)*/
5950        ZABCDEFG
5951     0: ZA
5952     1: A
5953     2:
5954     3:
5955    
5956    /((?>Z)+|A)*/
5957        ZABCDEFG
5958     0: ZA
5959     1: A
5960    
5961    /((?>)+|A)*/
5962        ZABCDEFG
5963     0:
5964     1:
5965    
5966    /a*/g
5967        abbab
5968     0: a
5969     0:
5970     0:
5971     0: a
5972     0:
5973     0:
5974    
5975    /^[a-\d]/
5976        abcde
5977     0: a
5978        -things
5979     0: -
5980        0digit
5981     0: 0
5982        *** Failers
5983    No match
5984        bcdef
5985    No match
5986    
5987    /^[\d-a]/
5988        abcde
5989     0: a
5990        -things
5991     0: -
5992        0digit
5993     0: 0
5994        *** Failers
5995    No match
5996        bcdef
5997    No match
5998    
5999    /[[:space:]]+/
6000        > \x09\x0a\x0c\x0d\x0b<
6001     0:  \x09\x0a\x0c\x0d\x0b
6002    
6003    /[[:blank:]]+/
6004        > \x09\x0a\x0c\x0d\x0b<
6005     0:  \x09
6006    
6007    /[\s]+/
6008        > \x09\x0a\x0c\x0d\x0b<
6009     0:  \x09\x0a\x0c\x0d
6010    
6011    /\s+/
6012        > \x09\x0a\x0c\x0d\x0b<
6013     0:  \x09\x0a\x0c\x0d
6014    
6015    /a b/x
6016        ab
6017    No match
6018    
6019    /(?!\A)x/m
6020      a\nxb\n
6021     0: x
6022    
6023    /(?!^)x/m
6024      a\nxb\n
6025    No match
6026    
6027    /abc\Qabc\Eabc/
6028        abcabcabc
6029     0: abcabcabc
6030    
6031    /abc\Q(*+|\Eabc/
6032        abc(*+|abc
6033     0: abc(*+|abc
6034    
6035    /   abc\Q abc\Eabc/x
6036        abc abcabc
6037     0: abc abcabc
6038        *** Failers
6039    No match
6040        abcabcabc
6041    No match
6042    
6043    /abc#comment
6044        \Q#not comment
6045        literal\E/x
6046        abc#not comment\n    literal
6047     0: abc#not comment\x0a    literal
6048    
6049    /abc#comment
6050        \Q#not comment
6051        literal/x
6052        abc#not comment\n    literal
6053     0: abc#not comment\x0a    literal
6054    
6055    /abc#comment
6056        \Q#not comment
6057        literal\E #more comment
6058        /x
6059        abc#not comment\n    literal
6060     0: abc#not comment\x0a    literal
6061    
6062    /abc#comment
6063        \Q#not comment
6064        literal\E #more comment/x
6065        abc#not comment\n    literal
6066     0: abc#not comment\x0a    literal
6067    
6068    /\Qabc\$xyz\E/
6069        abc\\\$xyz
6070     0: abc\$xyz
6071    
6072    /\Qabc\E\$\Qxyz\E/
6073        abc\$xyz
6074     0: abc$xyz
6075    
6076    /\Gabc/
6077        abc
6078     0: abc
6079        *** Failers
6080    No match
6081        xyzabc
6082    No match
6083    
6084    /\Gabc./g
6085        abc1abc2xyzabc3
6086     0: abc1
6087     0: abc2
6088    
6089    /abc./g
6090        abc1abc2xyzabc3
6091     0: abc1
6092     0: abc2
6093     0: abc3
6094    
6095    /a(?x: b c )d/
6096        XabcdY
6097     0: abcd
6098        *** Failers
6099    No match
6100        Xa b c d Y
6101    No match
6102    
6103    /((?x)x y z | a b c)/
6104        XabcY
6105     0: abc
6106     1: abc
6107        AxyzB
6108     0: xyz
6109     1: xyz
6110    
6111    /(?i)AB(?-i)C/
6112        XabCY
6113     0: abC
6114        *** Failers
6115    No match
6116        XabcY
6117    No match
6118    
6119    /((?i)AB(?-i)C|D)E/
6120        abCE
6121     0: abCE
6122     1: abC
6123        DE
6124     0: DE
6125     1: D
6126        *** Failers
6127    No match
6128        abcE
6129    No match
6130        abCe
6131    No match
6132        dE
6133    No match
6134        De
6135    No match
6136    
6137    /(.*)\d+\1/
6138        abc123abc
6139     0: abc123abc
6140     1: abc
6141        abc123bc
6142     0: bc123bc
6143     1: bc
6144    
6145    /(.*)\d+\1/s
6146        abc123abc
6147     0: abc123abc
6148     1: abc
6149        abc123bc
6150     0: bc123bc
6151     1: bc
6152    
6153    /((.*))\d+\1/
6154        abc123abc
6155     0: abc123abc
6156     1: abc
6157     2: abc
6158        abc123bc
6159     0: bc123bc
6160     1: bc
6161     2: bc
6162    
6163    /-- This tests for an IPv6 address in the form where it can have up to --/
6164    /-- eight components, one and only one of which is empty. This must be --/
6165    No match
6166    /-- an internal component. --/
6167    No match
6168    
6169    /^(?!:)                       # colon disallowed at start
6170      (?:                         # start of item
6171        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
6172        (?(1)0 | () ) )           # if null previously matched, fail; else null
6173        :                         # followed by colon
6174      ){1,7}                      # end item; 1-7 of them required
6175      [0-9a-f]{1,4} $             # final hex number at end of string
6176      (?(1)|.)                    # check that there was an empty component
6177      /xi
6178        a123::a123
6179     0: a123::a123
6180     1:
6181        a123:b342::abcd
6182     0: a123:b342::abcd
6183     1:
6184        a123:b342::324e:abcd
6185     0: a123:b342::324e:abcd
6186     1:
6187        a123:ddde:b342::324e:abcd
6188     0: a123:ddde:b342::324e:abcd
6189     1:
6190        a123:ddde:b342::324e:dcba:abcd
6191     0: a123:ddde:b342::324e:dcba:abcd
6192     1:
6193        a123:ddde:9999:b342::324e:dcba:abcd
6194     0: a123:ddde:9999:b342::324e:dcba:abcd
6195     1:
6196        *** Failers
6197    No match
6198        1:2:3:4:5:6:7:8
6199    No match
6200        a123:bce:ddde:9999:b342::324e:dcba:abcd
6201    No match
6202        a123::9999:b342::324e:dcba:abcd
6203    No match
6204        abcde:2:3:4:5:6:7:8
6205    No match
6206        ::1
6207    No match
6208        abcd:fee0:123::
6209    No match
6210        :1
6211    No match
6212        1:
6213    No match
6214    
6215    /[z\Qa-d]\E]/
6216        z
6217     0: z
6218        a
6219     0: a
6220        -
6221     0: -
6222        d
6223     0: d
6224        ]
6225     0: ]
6226        *** Failers
6227     0: a
6228        b
6229    No match
6230    
6231    /[\z\C]/
6232        z
6233     0: z
6234        C
6235     0: C
6236    
6237    /\M/
6238        M
6239     0: M
6240    
6241    /(a+)*b/
6242        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6243    No match
6244    
6245    /(?i)reg(?:ul(?:[a]|ae)r|ex)/
6246        REGular
6247     0: REGular
6248        regulaer
6249     0: regulaer
6250        Regex
6251     0: Regex
6252        regulr
6253     0: regul\xe4r
6254    
6255    /[--]+/
6256        
6257     0: \xc5\xe6\xe5\xe4\xe0
6258        
6259     0: \xc5\xe6\xe5\xe4\xff
6260        
6261     0: \xc5\xe6\xe5\xe4\xc0
6262        
6263     0: \xc5\xe6\xe5\xe4\xdf
6264    
6265    /(?<=Z)X./
6266      \x84XAZXB
6267     0: XB
6268    
6269    /ab cd (?x) de fg/
6270        ab cd defg
6271     0: ab cd defg
6272    
6273    /ab cd(?x) de fg/
6274        ab cddefg
6275     0: ab cddefg
6276        ** Failers
6277    No match
6278        abcddefg
6279    No match
6280    
6281    /(?<![^f]oo)(bar)/
6282        foobarX
6283     0: bar
6284     1: bar
6285        ** Failers
6286    No match
6287        boobarX
6288    No match
6289    
6290    /(?<![^f])X/
6291        offX
6292     0: X
6293        ** Failers
6294    No match
6295        onyX
6296    No match
6297    
6298    /(?<=[^f])X/
6299        onyX
6300     0: X
6301        ** Failers
6302    No match
6303        offX
6304    No match
6305    
6306    /^/mg
6307        a\nb\nc\n
6308     0:
6309     0:
6310     0:
6311        \
6312     0:
6313    
6314    /(?<=C\n)^/mg
6315        A\nC\nC\n
6316     0:
6317    
6318    /(?:(?(1)a|b)(X))+/
6319        bXaX
6320     0: bXaX
6321     1: X
6322    
6323    /(?:(?(1)\1a|b)(X|Y))+/
6324        bXXaYYaY
6325     0: bXXaYYaY
6326     1: Y
6327        bXYaXXaX
6328     0: bX
6329     1: X
6330    
6331    /()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/
6332        bXXaYYaY
6333     0: bX
6334     1:
6335     2:
6336     3:
6337     4:
6338     5:
6339     6:
6340     7:
6341     8:
6342     9:
6343    10: X
6344    
6345    /[[,abc,]+]/
6346        abc]
6347     0: abc]
6348        a,b]
6349     0: a,b]
6350        [a,b,c]
6351     0: [a,b,c]
6352    
6353    /(?-x: )/x
6354        A\x20B
6355     0:
6356    
6357    "(?x)(?-x: \s*#\s*)"
6358        A # B
6359     0:  #
6360        ** Failers
6361    No match
6362        #
6363    No match
6364    
6365    "(?x-is)(?:(?-ixs) \s*#\s*) include"
6366        A #include
6367     0:  #include
6368        ** Failers
6369    No match
6370        A#include
6371    No match
6372        A #Include
6373    No match
6374    
6375    /a*b*\w/
6376        aaabbbb
6377     0: aaabbbb
6378        aaaa
6379     0: aaaa
6380        a
6381     0: a
6382    
6383    /a*b?\w/
6384        aaabbbb
6385     0: aaabb
6386        aaaa
6387     0: aaaa
6388        a
6389     0: a
6390    
6391    /a*b{0,4}\w/
6392        aaabbbb
6393     0: aaabbbb
6394        aaaa
6395     0: aaaa
6396        a
6397     0: a
6398    
6399    /a*b{0,}\w/
6400        aaabbbb
6401     0: aaabbbb
6402        aaaa
6403     0: aaaa
6404        a
6405     0: a
6406    
6407    /a*\d*\w/
6408        0a
6409     0: 0a
6410        a
6411     0: a
6412    
6413    /a*b *\w/x
6414        a
6415     0: a
6416    
6417    /a*b#comment
6418      *\w/x
6419        a
6420     0: a
6421    
6422    /a* b *\w/x
6423        a
6424     0: a
6425    
6426    /^\w+=.*(\\\n.*)*/
6427        abc=xyz\\\npqr
6428     0: abc=xyz\
6429    
6430    /(?=(\w+))\1:/
6431        abcd:
6432     0: abcd:
6433     1: abcd
6434    
6435    /^(?=(\w+))\1:/
6436        abcd:
6437     0: abcd:
6438     1: abcd
6439    
6440    /^\Eabc/
6441        abc
6442     0: abc
6443    
6444    /^[\Eabc]/
6445        a
6446     0: a
6447        ** Failers
6448    No match
6449        E
6450    No match
6451    
6452    /^[a-\Ec]/
6453        b
6454     0: b
6455        ** Failers
6456    No match
6457        -
6458    No match
6459        E
6460    No match
6461    
6462    /^[a\E\E-\Ec]/
6463        b
6464     0: b
6465        ** Failers
6466    No match
6467        -
6468    No match
6469        E
6470    No match
6471    
6472    /^[\E\Qa\E-\Qz\E]+/
6473        b
6474     0: b
6475        ** Failers
6476    No match
6477        -
6478    No match
6479    
6480    /^[a\Q]bc\E]/
6481        a
6482     0: a
6483        ]
6484     0: ]
6485        c
6486     0: c
6487    
6488    /^[a-\Q\E]/
6489        a
6490     0: a
6491        -
6492     0: -
6493    
6494    /^(a()*)*/
6495        aaaa
6496     0: aaaa
6497     1: a
6498     2:
6499    
6500    /^(?:a(?:(?:))*)*/
6501        aaaa
6502     0: aaaa
6503    
6504    /^(a()+)+/
6505        aaaa
6506     0: aaaa
6507     1: a
6508     2:
6509    
6510    /^(?:a(?:(?:))+)+/
6511        aaaa
6512     0: aaaa
6513    
6514    /(a){0,3}(?(1)b|(c|))*D/
6515        abbD
6516     0: abbD
6517     1: a
6518        ccccD
6519     0: ccccD
6520     1: <unset>
6521     2:
6522        D
6523     0: D
6524     1: <unset>
6525     2:
6526    
6527    /(a|)*\d/
6528      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6529    No match
6530      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6531     0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6532     1:
6533    
6534    /(?>a|)*\d/
6535      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6536    No match
6537      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6538     0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6539    
6540    /(?:a|)*\d/
6541      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6542    No match
6543      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6544     0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
6545    
6546    /\Z/g
6547      abc\n
6548     0:
6549     0:
6550    
6551    /^(?s)(?>.*)(?<!\n)/
6552      abc
6553     0: abc
6554      abc\n
6555    No match
6556    
6557    /^(?![^\n]*\n\z)/
6558      abc
6559     0:
6560      abc\n
6561    No match
6562    
6563    /\z(?<!\n)/
6564      abc
6565     0:
6566      abc\n
6567    No match
6568    
6569    /(.*(.)?)*/
6570        abcd
6571     0: abcd
6572     1:
6573    
6574    /( (A | (?(1)0|) )*   )/x
6575        abcd
6576     0:
6577     1:
6578     2:
6579    
6580    /( ( (?(1)0|) )*   )/x
6581        abcd
6582     0:
6583     1:
6584     2:
6585    
6586    /(  (?(1)0|)*   )/x
6587        abcd
6588     0:
6589     1:
6590    
6591    /[[:abcd:xyz]]/
6592        a]
6593     0: a]
6594        :]
6595     0: :]
6596    
6597    /[abc[:x\]pqr]/
6598        a
6599     0: a
6600        [
6601     0: [
6602        :
6603     0: :
6604        ]
6605     0: ]
6606        p
6607     0: p
6608    
6609    /.*[op][xyz]/
6610        fooabcfoo
6611    No match
6612    
6613    /(?(?=.*b)b|^)/
6614       adc
6615     0:
6616       abc
6617     0: b
6618    
6619    /(?(?=^.*b)b|^)/
6620       adc
6621     0:
6622       abc
6623    No match
6624    
6625    /(?(?=.*b)b|^)*/
6626       adc
6627     0:
6628       abc
6629     0:
6630    
6631    /(?(?=.*b)b|^)+/
6632       adc
6633     0:
6634       abc
6635     0: b
6636    
6637    /(?(?=b).*b|^d)/
6638        abc
6639     0: b
6640    
6641    /(?(?=.*b).*b|^d)/
6642        abc
6643     0: ab
6644    
6645    /^%((?(?=[a])[^%])|b)*%$/
6646        %ab%
6647     0: %ab%
6648     1:
6649    
6650    /(?i)a(?-i)b|c/
6651        XabX