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

Legend:
Removed from v.57  
changed lines
  Added in v.91

  ViewVC Help
Powered by ViewVC 1.1.5