Failed PCRE Tests
18 failed tests on 10 patterns.
Skipped
12 patterns were skipped for the following reasons:
(no 69) skipped, because of very long compile time. The complex pattern parses email adresses
(no 70) skipped, because of very long compile time. The complex pattern parses email adresses
/^[W-c]+$/i(no 89) skipped, CombinedParsers brackets use unicode character ranges. Avoid such patterns for now, contributions very welcome.
/^[\x3f-\x5F]+$/i(no 90) skipped, CombinedParsers brackets use unicode character ranges. Avoid such patterns for now, contributions very welcome.
(no 135) skipped, escaped characters needs investigation.
/^(?:b|a(?=(.)))*\1/(no 524) skipped, Captures in Lookaheads need refactoring. Low prio because instead of using backreference, FlatMap is recommended in CombinedParsers.jl.
/^((a|b)+)*ax/(no 527) skipped, Capture backtracking needs refactoring. Low prio because instead of using captures, parse is recommended in CombinedParsers.jl.
/^((a|bc)+)*ax/(no 528) skipped, Capture backtracking needs refactoring. Low prio because instead of using captures, parse is recommended in CombinedParsers.jl.
/(?<=\d{3}(?!999)...)foo/(no 625) skipped,
Lookahead in Lookbehind needs refactoring.
/(a+)*b/(no 664) skipped, because of very long matching time for Repeat(Repeat1('a')) when there is no match. Avoid such patterns, contributions optimizing these cases are also very welcome.
/(?P<abn>(?P=abn)xxx|)+/(no 887) skipped, do I misunderstand recursive backreferences?
julia> pattern = "(?P<abn>(?P=abn)xxx|)+""(?P<abn>(?P=abn)xxx|)+"julia> match(Regex(pattern),"xxx")RegexMatch("", abn="")julia> match(Regcomb(pattern),"xxx")ERROR: UndefVarError: Regcomb not defined
IMO the pcre behaviour is confusing after considering the logic of expanding the repeat
julia> pattern = "(?P<abn>(?P=abn)xxx|)((?P=abn)xxx|)""(?P<abn>(?P=abn)xxx|)((?P=abn)xxx|)"julia> match(Regex(pattern),"xxx")RegexMatch("xxx", abn="", 2="xxx")julia> match(Regcomb(pattern),"xxx")ERROR: UndefVarError: Regcomb not defined
julia> parse(re"(\1xxx|)+","xxx")ERROR: LoadError: UndefVarError: @re_str not defined in expression starting at REPL[1]:1julia> match(r"(\1xxx|)+","xxx")RegexMatch("", 1="")julia> parse(re"(|\1xxx)+", "xxx")ERROR: LoadError: UndefVarError: @re_str not defined in expression starting at REPL[3]:1julia> parse(r"(|\1xxx)+", "xxx")ERROR: MethodError: no method matching parse(::Regex, ::String) Closest candidates are: parse(!Matched::TextParse.AbstractToken, ::Any, !Matched::Any...; kw...) at /home/travis/.julia/packages/CombinedParsers/vz0pA/src/match.jl:280 parse(!Matched::Type{T}, ::AbstractString) where T<:Complex at parse.jl:381 parse(!Matched::Type{T}, ::AbstractString; base) where T<:Integer at parse.jl:240 ...
(no 1173) skipped, because of very long compile time. The complex pattern parses PCRE regex syntax.
Failed tests
/(([a-c])b*?\2){3}/(no 397) failed 0 of 1 times:
- ❌
ababbbcbc
/((\3|b)\2(a)){2,}/(no 399) failed 0 of 1 times:
- ❌
bbaababbabaaaaabbaaaabba
/()?(?(1)b|a)/(no 586) failed 0 of 1 times:
- ❌
a
/(?:(?(1)\1a|b)(X|Y))+/(no 676) failed 0 of 2 times:
- ❌
bXXaYYaY - ✅
bXYaXXaX
/^\Eabc/(no 693) failed 0 of 0 times:
/^[a-\Ec]/(no 695) failed 1 of 3 times:
- ❌
b - ❌
-no match - ✅
Eno match
/^[a\E\E-\Ec]/(no 696) failed 1 of 3 times:
- ❌
b - ❌
-no match - ✅
Eno match
/^[\E\Qa\E-\Qz\E]+/(no 697) failed 1 of 3 times:
- ❌
b - ❌
-no match - ✅ `` no match
/(?(R)a+|(?R)b)/(no 918) failed 0 of 0 times:
/^(?=.*(?=(([A-Z]).*(?(1)\1)))(?!.+\2)){26}/i(no 1246) failed 5 of 6 times:
- ❌
The quick brown fox jumps over the lazy dog. - ❌
Jackdaws love my big sphinx of quartz. - ❌
Pack my box with five dozen liquor jugs. - ❌
The quick brown fox jumps over the lazy cat.no match - ❌
Hackdaws love my big sphinx of quartz.no match - ❌
Pack my fox with five dozen liquor jugs.no match