args: use non-capturing groups when joining multiple patterns #2488
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2480
Fix the joined pattern so that multiple VALID patterns cannot affect each other.
e.g. worked before but fixed now:
echo FooBar | rg -e '(?i)notfoo' -e bar # no result
Wontfix the joined pattern to handle some cases of multiple INVALID patterns that are "coordinated" to fix each other.
e.g. still works but is unexpected:
echo 'FooBar' | rg -e '(' -e ')' # matches with an empty string
also, introduces a new class of invalid patterns that work now but wouldn't work before:
e.g. got parse error before but not now:
echo 'FooBar' | rg ')(' # matches with an empty string
edit: pushed another commit to avoid the regerssion for a single pattern.
the new class still applies for multiple patterns:
e.g. got parse error before but not now:
echo 'FooBar' | rg -e ')(' -e 'x' # matches with an empty string