Skip to content

build(deps): bump fancy-regex from 0.14.0 to 0.19.0 - #91

Open
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/fancy-regex-0.19.0
Open

build(deps): bump fancy-regex from 0.14.0 to 0.19.0#91
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/fancy-regex-0.19.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor

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

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Aug 31, 2026
@dependabot
dependabot Bot requested review from Fab-Cat and helly25 as code owners August 31, 2026 16:38
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Aug 31, 2026
Bumps [fancy-regex](https://github.com/fancy-regex/fancy-regex) from 0.14.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.14.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 cacf462 to 1124379 Compare September 1, 2026 08:00
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.

2 participants