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