Skip to content

build(deps): bump fancy-regex from 0.18.0 to 0.19.0 - #949

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/fancy-regex-0.19.0
Open

build(deps): bump fancy-regex from 0.18.0 to 0.19.0#949
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/fancy-regex-0.19.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 28, 2026

Copy link
Copy Markdown
Contributor

Bumps fancy-regex from 0.18.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.

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.

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

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Jul 28, 2026
Bumps [fancy-regex](https://github.com/fancy-regex/fancy-regex) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/fancy-regex/fancy-regex/releases)
- [Changelog](https://github.com/fancy-regex/fancy-regex/blob/main/CHANGELOG.md)
- [Commits](fancy-regex/fancy-regex@0.18.0...0.19.0)

---
updated-dependencies:
- dependency-name: fancy-regex
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/cargo/fancy-regex-0.19.0 branch from 550e1e0 to 6cf9b06 Compare July 28, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants