GeezerVison is showing github.com — build(deps): bump fancy-regex from 0.14.0 to 0.19.0 by dependabot[bot] · Pull Request #17 · tegmentum/stringcheese
Conversation
dependabot
Bot
commented
on behalf of github
Aug 20, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Bumps fancy-regex from 0.14.0 to 0.19.0.
Release notes
Sourced from fancy-regex's releases.
0.19.0
Added
- Add
BytesMode and the RegexInput trait so the matching and capture APIs can operate on strings or bytes, and allows to opt out of unicode handling if desired (#248)
- Also allows searching within a range without slicing (#253)
- Assertions can be overridden at runtime, if the regex builder
allow_input_assertion_overrides option was used (#254)
- Search can be performed in anchored mode, searching only at the start position specified (#263)
- Add experimental seek optimization to only invoke the VM at candidate positions where a match could occur (#246)
- Add
RegexBuilder::disallow_empty_match_at_eof_after_newline to reject empty matches at the end of the haystack following a trailing newline, to match Oniguruma behavior (#247)
- Add
RegexSet API for efficiently matching multiple patterns against the same text (#255)
Changed
- Case-insensitive backreference comparison of non-ASCII text now uses direct Unicode simple case folding instead of building a regex engine per comparison, which makes patterns like
(?i)(\w+)\1 orders of magnitude faster on non-ASCII haystacks. The comparison is now strict fold equality over the captured text's byte-length window: a case-folded prefix of the window no longer counts as a match (previously a substring search could accept one and misalign the match end)
- Compilation performance: delegated regex-automata engines (including the whole pattern in the easy case) are now built from a directly-constructed
Hir instead of a re-serialized pattern string, and RegexSet parses each pattern once for both of its set-wide engines instead of three times. This reduces compile time and peak compile memory, especially for RegexSet and small easy patterns
- Match performance: the backtracking VM's working memory (saves, backtrack stack, delegate slots) is pooled and reused across runs, making
is_match/find/find_iter and RegexSet candidate verification allocation-free per call; RegexSet::find_input no longer allocates at failed candidate positions. Short and repeated matches improve substantially (up to ~30% for small patterns, ~10% for find_iter over many matches); single very long backtracking runs, where per-run setup is fully amortized anyway, can be a few percent slower
Matches, CaptureMatches, Captures, and SubCaptureMatches are now generic over RegexInput, which is a breaking change for code that named these types explicitly (#248)
- Patterns no longer force Unicode mode during parsing, and inline
(?u) / (?-u) flags are accepted when they agree with the builder configuration
Fixed
- Fix bug whereby inline flags were not overriding the builder options (#247)
- Fix bug whereby
\G optimizations were applying where they shouldn't, giving wrong results (#256)
- Support Oniguruma quantifier parsing rules, whereby swapped ordering causes possessiveness,
+ only causes possessiveness after ?, * or + (#258)
Upgrade guide
If you previously stored i.e. Captures, you would need to change the type to Captures<str> to get the code to compile.
0.18.0
Added
- Add support for
\N to mean any character except newline, for Oniguruma compatibility (#206)
- Add support for
(*FAIL) backtracking control verb (#210)
- Add support for more
\p{...} and \P{...} aliases, for Oniguruma compatibility (#207)
- Add support for word boundaries and zero-length fancy patterns inside variable lookbehinds (at top level) (#216)
- Add support for
\R to mean general newline, matching all common line break characters, treating \r\n atomically (#220)
- Add support for the regex crate's
(?R) CRLF mode flag (#238)
- Add support for subroutine calls (including recursion up to 20 levels deep, matching Oniguruma behavior)
\g<1> (#230)
- Add support for Oniguruma's absent repeater
(?~abc) (#233)
- Add support for ignoring empty matches (#240)
- Add support for treating unnamed capture groups as non-capturing when named groups exist (#241)
Changed
RegexBuilder can now build multiple patterns with the same options (#213)
- Parsing of capture group names is now more lenient (#241)
Fixed
- Fixed bug with parsing nested character classes containing unescaped
] (#211)
0.17.0
Added
- Add support for "easy" variable-length lookbehinds (enabled via new feature flag) (#194, #196)
- Add support for more word boundaries:
\b{start}, \b{end}, \b{start-half}, \b{end-half} (#193)
- Allow
{...} repetition syntax after assertions (except in Oniguruma mode) (#193)
- Add Oniguruma mode flag to playground (#199)
Changed
- Rewrite Theory section of Readme in a more formal style (#187)
- Box
CompileError in Error enum to reduce size (#204)
- Bail out early when
\G fails to match for increased performance (#198)
... (truncated)
Changelog
Sourced from fancy-regex's changelog.
[0.19.0] - 2026-07-28
Added
- Add
BytesMode and the RegexInput trait so the matching and capture APIs can operate on strings or bytes, and allows to opt out of unicode handling if desired (#248)
- Also allows searching within a range without slicing (#253)
- Assertions can be overridden at runtime, if the regex builder
allow_input_assertion_overrides option was used (#254)
- Search can be performed in anchored mode, searching only at the start position specified (#263)
- Add experimental seek optimization to only invoke the VM at candidate positions where a match could occur (#246)
- Add
RegexBuilder::disallow_empty_match_at_eof_after_newline to reject empty matches at the end of the haystack following a trailing newline, to match Oniguruma behavior (#247)
- Add
RegexSet API for efficiently matching multiple patterns against the same text (#255)
Changed
- Case-insensitive backreference comparison of non-ASCII text now uses direct Unicode simple case folding instead of building a regex engine per comparison, which makes patterns like
(?i)(\w+)\1 orders of magnitude faster on non-ASCII haystacks. The comparison is now strict fold equality over the captured text's byte-length window: a case-folded prefix of the window no longer counts as a match (previously a substring search could accept one and misalign the match end)
- Compilation performance: delegated regex-automata engines (including the whole pattern in the easy case) are now built from a directly-constructed
Hir instead of a re-serialized pattern string, and RegexSet parses each pattern once for both of its set-wide engines instead of three times. This reduces compile time and peak compile memory, especially for RegexSet and small easy patterns
- Match performance: the backtracking VM's working memory (saves, backtrack stack, delegate slots) is pooled and reused across runs, making
is_match/find/find_iter and RegexSet candidate verification allocation-free per call; RegexSet::find_input no longer allocates at failed candidate positions. Short and repeated matches improve substantially (up to ~30% for small patterns, ~10% for find_iter over many matches); single very long backtracking runs, where per-run setup is fully amortized anyway, can be a few percent slower
Matches, CaptureMatches, Captures, and SubCaptureMatches are now generic over RegexInput, which is a breaking change for code that named these types explicitly (#248)
- Patterns no longer force Unicode mode during parsing, and inline
(?u) / (?-u) flags are accepted when they agree with the builder configuration
Fixed
- Fix bug whereby inline flags were not overriding the builder options (#247)
- Fix bug whereby
\G optimizations were applying where they shouldn't, giving wrong results (#256)
- Support Oniguruma quantifier parsing rules, whereby swapped ordering causes possessiveness,
+ only causes possessiveness after ?, * or + (#258)
Upgrade guide
If you previously stored i.e. Captures, you would need to change the type to Captures<str> to get the code to compile.
[0.18.0] - 2026-04-24
Added
- Add support for
\N to mean any character except newline, for Oniguruma compatibility (#206)
- Add support for
(*FAIL) backtracking control verb (#210)
- Add support for more
\p{...} and \P{...} aliases, for Oniguruma compatibility (#207)
- Add support for word boundaries and zero-length fancy patterns inside variable lookbehinds (at top level) (#216)
- Add support for
\R to mean general newline, matching all common line break characters, treating \r\n atomically (#220)
- Add support for the regex crate's
(?R) CRLF mode flag (#238)
- Add support for subroutine calls (including recursion up to 20 levels deep, matching Oniguruma behavior)
\g<1> (#230)
- Add support for Oniguruma's absent repeater
(?~abc) (#233)
- Add support for ignoring empty matches (#240)
- Add support for treating unnamed capture groups as non-capturing when named groups exist (#241)
Changed
RegexBuilder can now build multiple patterns with the same options (#213)
- Parsing of capture group names is now more lenient (#241)
Fixed
- Fixed bug with parsing nested character classes containing unescaped
] (#211)
[0.17.0] - 2025-12-13
Added
- Add support for "easy" variable-length lookbehinds (enabled via new feature flag) (#194, #196)
- Add support for more word boundaries:
\b{start}, \b{end}, \b{start-half}, \b{end-half} (#193)
- Allow
{...} repetition syntax after assertions (except in Oniguruma mode) (#193)
- Add Oniguruma mode flag to playground (#199)
Changed
- Rewrite Theory section of Readme in a more formal style (#187)
- Box
CompileError in Error enum to reduce size (#204)
- Bail out early when
\G fails to match for increased performance (#198)
... (truncated)
Commits
e8d6986 Version 0.19.0
af79ee3 Merge pull request #267 from fancy-regex/regex-automata-bump
9d6b2db bump regex-automata to fix some seek bugs
3d04e3a Merge pull request #266 from fancy-regex/optimize_keepout
f44e0a5 Merge pull request #265 from fancy-regex/reduce_catastrophic_backtracking
e480dc4 Merge pull request #264 from fancy-regex/compilation_performance
35f8efa add note about optimizer
1f7a220 Address code review: fix spelling, add comment about has_descendant
4712936 Add \K (KeepOut) optimization: delegate root-level \K patterns to regex-automata
5496414 fix: correct asymmetric repeat optimization in build_concat_repeat_triplet
- Additional commits viewable in compare view

You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Labels
The following labels could not be found: dependencies, rust. Please create them before Dependabot can add them to a pull request.
Please fix the above issues or remove invalid values from dependabot.yml.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|