https://bugs.exim.org/show_bug.cgi?id=2645
Bug ID: 2645 Summary: error when trying to substitute an optional capture group that was not matched Product: PCRE Version: 10.35 (PCRE2) Hardware: x86 OS: Linux Status: NEW Severity: bug Priority: medium Component: Code Assignee: philip.ha...@gmail.com Reporter: plane...@gmail.com CC: pcre-dev@exim.org I reported a bug to the fish shell project about its "string replace" command. The bug report was closed, and pcre2 was blamed as the source of the error. Someone suggested creating a bug here. https://github.com/fish-shell/fish-shell/issues/7343 Description: The issue is that when trying to substitute a group that didn't match (because it was optional), an error is given instead of substituting an empty string. Steps to reproduce: echo 'az' | string replace -r -- 'a(b.+)?z' 'a:$1z' echo 'abz' | string replace -r -- 'a(b.+)?z' 'a:$1z' echo 'abcz' | string replace -r -- 'a(b.+)?z' 'a:$1z' Output: string replace: Regular expression substitute error: requested value is not set abz a:bcz I expected the first command to print a:z Here is an example that behaves as expected. https://regex101.com/r/wG3aM3/931 -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev