From 36ff5b942287220554d8420d38416c4a7b06c17d Mon Sep 17 00:00:00 2001 From: Hugo van der Sanden Date: Sat, 14 Nov 2020 12:42:31 +0000 Subject: [PATCH] Test regexp optimizations for substrings --- t/re/opt.t | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/t/re/opt.t b/t/re/opt.t index 24a3dc0e676e..802fdcaaad14 100644 --- a/t/re/opt.t +++ b/t/re/opt.t @@ -231,9 +231,40 @@ while () { } done_testing(); __END__ - 0 - - -abc 3 +abc - isall -(?=abc) 0 - - Tminlen=3,minlenret=0 +(?:) 0 - - Tisall + +# various forms of anchored substring +abc 3 0+abc - isall +.{10}abc 13 10+abc - - +(?i:)abc 3 0+abc - isall +a(?:)bc 3 0+abc - isall +a()bc 3 0+abc - - +a(?i:)bc 3 0+abc - isall +a(b)c 3 0+abc - - +a((?i:b))c 3 0+abc - Tanchored +a[bB]c 3 0+abc - Tanchored +(?=abc) 0 0+abc - Tanchored,Tminlen=3,minlenret=0 +abc|abc 3 0+abc - isall +abcd|abce 4 0+abc - - +acde|bcde 4 1+cde - Tanchored,stclass=~[ab] +acdef|bcdeg 5 1+cde - Tanchored,stclass=~[ab] + +# same as above, floating +.?abc 3 - 0:1+abc - +.?.{10}abc 13 - 10:11+abc - +.?(?i:)abc 3 - 0:1+abc - +.?a(?:)bc 3 - 0:1+abc - +.?a()bc 3 - 0:1+abc - +.?a(?i:)bc 3 - 0:1+abc - +.?a(b)c 3 - 0+abc - +.?a((?i:b))c 3 - 0+abc Tfloating +.?a[bB]c 3 - 0:1+abc Tfloating +.?(?=abc) 0 - 0:1+abc Tfloating,Tminlen=3,minlenret=0 +.?(?:abc|abc) 3 - 0:1+abc - +.?(?:abcd|abce) 4 - 0:1+abc - +.?(?:acde|bcde) 4 - 1:2+cde Tfloating +.?(?:acdef|bcdeg) 5 - 1:2+cde Tfloating + a(b){2,3}c 4 -abb 1+bbc -a(b|bb)c 3 -ab 1+bc Tfloating,Tfloating min offset,Tchecking -a(b|bb){2}c 4 -abb 1+bbc Tanchored,Tfloating,Tfloating min offset +a(b|bb)c 3 -ab 1-bc Tfloating,Tfloating min offset +a(b|bb){2}c 4 -abb 1-bbc Tanchored,Tfloating,Tfloating min offset