Skip to content

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 13, 2025

Bumps regex from 1.11.1 to 1.12.1.

Changelog

Sourced from regex's changelog.

1.12.1 (2025-10-10)

This release makes a bug fix in the new regex::Captures::get_match API introduced in 1.12.0. There was an oversight with the lifetime parameter for the Match returned. This is technically a breaking change, but given that it was caught almost immediately and I've yanked the 1.12.0 release, I think this is fine.

1.12.0 (2025-10-10)

This release contains a smattering of bug fixes, a fix for excessive memory consumption in some cases and a new regex::Captures::get_match API.

Improvements:

Bug fixes:

1.11.3 (2025-09-25)

This is a small patch release with an improvement in memory usage in some cases.

Improvements:

1.11.2 (2025-08-24)

This is a new patch release of regex with some minor fixes. A larger number of typo or lint fix patches were merged. Also, we now finally recommend using std::sync::LazyLock.

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually 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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @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)

Bumps [regex](https://github.com/rust-lang/regex) from 1.11.1 to 1.12.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](rust-lang/regex@1.11.1...1.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Oct 13, 2025

Labels

The following labels could not be found: rust. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Copy link

fossabot bot commented Oct 13, 2025

fossabot is Thinking

Copy link

fossabot bot commented Oct 13, 2025

Needs Review

Unable to perform impact analysis for regex. No package usage found in the codebase.

Dependency Usage

The regex dependency is used exclusively in the security module (src/security.rs) to sanitize error messages by redacting sensitive information such as file paths, IP addresses, passwords, database connection strings, and credentials. This security-critical functionality protects users from information leakage when error messages are displayed, supporting the application's safe file system operations across path validation, file size checking, and error handling workflows.

Changes

The regex dependency was updated with 2 critical security fixes including a denial-of-service vulnerability in the regex compiler that could be exploited with untrusted patterns (GHSA-m5pq-gvj9-9vr8), along with 34 breaking changes including removal of the Pattern trait compatibility, renaming of core APIs like compile to build, and dropping of multiple dependencies (thread_local, lazy_static, simd). Additionally, 284 bug fixes address matching inconsistencies across regex engines, memory leaks from internal caching, performance regressions with RegexSet, and numerous edge cases with Unicode boundaries and empty sub-expressions.

  • Fixed the Pattern trait implementation to address breaking changes in the nightly Rust API (v1.11.1, changelog)
  • Breaking change to regex-syntax to version 0.8.0 (v1.11.1, changelog)
  • The allow_invalid_utf8 option in regex-syntax has been renamed (v1.11.1, changelog)
View 706 more changes
  • Fixed compilation issue on nightly Rust when the unstable pattern crate feature is enabled (v1.11.1, changelog)
  • BUG #1231: (v1.11.1, changelog)
  • Updated internal Unicode Character Database to version 16 (v1.11.1, changelog)
  • FEATURE #1228: (v1.11.1, changelog)
  • Add new method regex::SetMatches::matched_all to the regex library (v1.11.1, changelog)
  • FEATURE #1229: (v1.11.1, changelog)
  • Update Unicode Character Database (UCD) to version 16 (v1.11.1, changelog)
  • Fix for unstable crate feature that enables std::str::Pattern trait integration (v1.11.1, changelog)
  • BUG #1219: (v1.11.1, changelog)
  • Fix the Pattern trait implementation to address nightly API breakage (v1.11.1, changelog)
  • BUG #1203: (v1.11.1, changelog)
  • Modify the Debug implementation for regex::bytes::Match to escape invalid UTF-8 sequences (v1.11.1, changelog)
  • BUG #1169: (v1.11.1, changelog)
  • Fixed a bug related to compiling a reverse NFA automaton in the regex-automata library (v1.11.1, changelog)
  • BUG #1178: (v1.11.1, changelog)
  • Clarifies behavior of Cow::Borrowed when returned from replace APIs, specifying it is equivalent to the input (v1.11.1, changelog)
  • Fixed feature configuration of optional dependencies (v1.11.1, changelog)
  • Corrected unsound use of bounds check elision (v1.11.1, changelog)
  • BUG #1147: (v1.11.1, changelog)
  • Disabled default features for the memchr dependency (v1.11.1, changelog)
  • Disabled default features for the aho-corasick dependency (v1.11.1, changelog)
  • BUG #1154: (v1.11.1, changelog)
  • Fix unsound bounds check elision in regex implementation (v1.11.1, changelog)
  • Fixed a search regression that could cause incorrect matches to be reported (v1.11.1, changelog)
  • BUG #1110: (v1.11.1, changelog)
  • Revert optimization of reverse suffix literal that was originally introduced in version 1.10.1 (v1.11.1, changelog)
  • Increased number of valid regex patterns (v1.11.1, changelog)
  • Broadened literal optimizations (v1.11.1, changelog)
  • FEATURE 04f5d7be: (v1.11.1, changelog)
  • Loosened ASCII-compatible regex rules to now allow non-ASCII characters like when explicitly specified with the (?-u:) flag (v1.11.1, changelog)
  • PERF 8a8d599f: (v1.11.1, changelog)
  • Expanded reverse suffix optimization to be applicable in a wider range of scenarios (v1.11.1, changelog)
  • Added support for word boundary assertions \< and \> (v1.11.1, changelog)
  • Raised minimum supported Rust version to 1.65 (v1.11.1, changelog)
  • \< or \b{start}: a Unicode start-of-word boundary (\W|\A on the left, (v1.11.1, changelog)
  • \> or \b{end}: a Unicode end-of-word boundary (\w on the left, \W|\z (v1.11.1, changelog)
  • \b{start-half}: half of a Unicode start-of-word boundary (\W|\A on the (v1.11.1, changelog)
  • \b{end-half}: half of a Unicode end-of-word boundary (\W|\z on the (v1.11.1, changelog)
  • Added \< GNU regex extension for word start boundary (v1.11.1, changelog)
  • Added \b{start} as an alias for \< (v1.11.1, changelog)
  • Included these extensions in the regex crate because of broad support in other regex engines (v1.11.1, changelog)
  • Added \b{start-half} assertion, a novel regex boundary not found in other regex engines (v1.11.1, changelog)
  • Introduced more flexible word boundary matching, particularly to support grep-like word matching implementations (v1.11.1, changelog)
  • FEATURE #469: (v1.11.1, changelog)
  • Add support for \< word boundary left assertion (v1.11.1, changelog)
  • Add support for \> word boundary right assertion (v1.11.1, changelog)
  • FEATURE(regex-automata) #1031: (v1.11.1, changelog)
  • Added a start_state method to DFAs that does not require an Input parameter (v1.11.1, changelog)
  • PERF #1051: (v1.11.1, changelog)
  • Optimized Unicode character class operations in the regex-syntax library (v1.11.1, changelog)
  • PERF #1090: (v1.11.1, changelog)
  • Optimize memory usage for regex patterns with many literal characters (v1.11.1, changelog)
  • Reduce memory footprint of regex patterns containing large amounts of literal text (v1.11.1, changelog)
  • BUG #1046: (v1.11.1, changelog)
  • Fix a bug causing incorrect match spans when using Unicode word boundary (\b) on non-ASCII strings (v1.11.1, changelog)
  • BUG(regex-syntax) #1047: (v1.11.1, changelog)
  • Fix panics that can occur during Ast->Hir translation in the code path not reachable from the regex crate (v1.11.1, changelog)
  • Remove API guarantees that previously tied the u flag to a specific HIR (High-level Intermediate Representation) representation (v1.11.1, changelog)
  • Added support for new word boundary assertions (v1.11.1, changelog)
  • Modified Look enum by adding new variants (v1.11.1, changelog)
  • Changed LookSet type to use u32 instead of u16 for bitset representation of look-around assertions (v1.11.1, changelog)
  • Changes to the Ast type to reduce heap usage (v1.11.1, changelog)
  • Potential code modifications required for direct users of Ast type (v1.11.1, changelog)
  • Added support for word boundary assertions in regex-lite 0.1.1 (v1.11.1, changelog)
  • Fixed a panic when the default regex size limit is increased to a large number (v1.11.1, changelog)
  • BUG aa4e4c71: (v1.11.1, changelog)
  • Fixed a bug in maximum haystack length computation for bounded backtracker that could cause integer underflow (v1.11.1, changelog)
  • Prevented potential panic during search caused by broken invariant related to haystack length calculation (v1.11.1, changelog)
  • Fixed performance bug when sharing a regex across multiple threads (v1.11.1, changelog)
  • Added documentation about two methods to avoid regex contention in multi-threaded scenarios (v1.11.1, changelog)
  • Recommended using lower-level APIs from regex-automata that require explicit state passing (v1.11.1, changelog)
  • Suggested cloning regex and sending to other threads as an alternative approach (v1.11.1, changelog)
  • Noted that cloning regex does not increase memory usage (v1.11.1, changelog)
  • Highlighted limitation that cloning won't work with OnceLock, lazy_static, or once_cell (v1.11.1, changelog)
  • Reduced contention performance problems by sharding the free-list across threads (v1.11.1, changelog)
  • Ensured each sharded mutex occupies a single cache line to mitigate false sharing (v1.11.1, changelog)
  • BUG #934: (v1.11.1, changelog)
  • Fix performance issue with regex when experiencing high contention, which previously caused significant slowdowns (v1.11.1, changelog)
  • Fixed a bug in RegexSet::is_match(..) method that could incorrectly return false when RegexSet::matches(..).matched_any() returns true (v1.11.1, changelog)
  • BUG #1070: (v1.11.1, changelog)
  • Fixed a bug with RegexSet prefilter configuration that was causing incorrect behavior (v1.11.1, changelog)
  • Fixed a bug causing incorrect match offsets for certain regex search patterns (v1.11.1, changelog)
  • Bug primarily affects regex patterns without prefix/suffix literals but containing an inner literal and a conditional matching prefix (v1.11.1, changelog)
  • BUG #1060: (v1.11.1, changelog)
  • Fixed a bug in the reverse inner literal optimization where match offsets were being reported incorrectly (v1.11.1, changelog)
  • Fixed memory usage regression specifically when using RegexSet (v1.11.1, changelog)
  • Reduced excessive heap memory allocation that occurred in some cases, bringing memory usage closer to pre-1.9.0 levels (v1.11.1, changelog)
  • BUG #1059: (v1.11.1, changelog)
  • Fixed a memory usage regression in RegexSet (v1.11.1, changelog)
  • Reverted memory allocation strategy from aggressive to on-demand approach in regex internal engine (v1.11.1, changelog)
  • BUG #1027: (v1.11.1, changelog)
  • Change the allocation strategy for the backtracker to be less aggressive (v1.11.1, changelog)
  • Improved internal performance of regex searches (v1.11.1, changelog)
  • Added new API methods/functions (unspecified details) (v1.11.1, changelog)
  • A new Captures::extract method for quickly accessing the substrings (v1.11.1, changelog)
  • A new inline flag, R, which enables CRLF mode. This makes . match any (v1.11.1, changelog)
  • Updated Unicode scalar value matching to exclude \r and \n (v1.11.1, changelog)
  • Modified (?m:^) and (?m:$) to match before and after both \r and \n (v1.11.1, changelog)
  • Ensured (?m:^) and (?m:$) do not match between a \r and \n (v1.11.1, changelog)
  • RegexBuilder::line_terminator was added to further customize the line (v1.11.1, changelog)
  • Allow terminator used by (?m:^) and (?m:$) to be any arbitrary byte (v1.11.1, changelog)
  • The std Cargo feature is now actually optional. That is, the regex crate (v1.11.1, changelog)
  • Because regex 1.9 may make binary size and compile times even worse, a (v1.11.1, changelog)
  • Published a new experimental crate called regex-lite (v1.11.1, changelog)
  • regex-lite prioritizes binary size and compile times (v1.11.1, changelog)
  • regex-lite has reduced functionality compared to main regex crate (v1.11.1, changelog)
  • regex-lite does not support Unicode features (v1.11.1, changelog)
  • regex-lite shares no code with the main regex crate (v1.11.1, changelog)
  • FEATURE #244: (v1.11.1, changelog)
  • Added new R flag to opt into CRLF mode in regex (v1.11.1, changelog)
  • New flag allows matching just before \r\n using syntax like (?mR:$) (v1.11.1, changelog)
  • FEATURE #259: (v1.11.1, changelog)
  • Added support for multi-pattern searches with offsets using regex-automata 0.3 (v1.11.1, changelog)
  • FEATURE #476: (v1.11.1, changelog)
  • std is now an optional feature (v1.11.1, changelog)
  • regex can now be used with only alloc (v1.11.1, changelog)
  • FEATURE #644: (v1.11.1, changelog)
  • Added line_terminator method to RegexBuilder for configuring (?m:^) and (?m:$) line matching behavior (v1.11.1, changelog)
  • FEATURE #675: (v1.11.1, changelog)
  • Introduced anchored search APIs in regex-automata version 0.3 (v1.11.1, changelog)
  • FEATURE #824: (v1.11.1, changelog)
  • Add new method Captures::extract for easier extraction of capture groups (v1.11.1, changelog)
  • FEATURE #961: (v1.11.1, changelog)
  • Add regex-lite crate for improved binary sizes and faster compile times (v1.11.1, changelog)
  • FEATURE #1022: (v1.11.1, changelog)
  • Add TryFrom implementations for the Regex type (v1.11.1, changelog)
  • PERF #68: (v1.11.1, changelog)
  • Added a one-pass DFA (Deterministic Finite Automaton) engine to improve capture group matching performance (v1.11.1, changelog)
  • PERF #510: (v1.11.1, changelog)
  • Inner literals are now used to optimize and accelerate regex search performance (v1.11.1, changelog)
  • Specific example shows optimization with pattern \w+@\w+ which will now scan directly for the @ character (v1.11.1, changelog)
  • PERF #787, (v1.11.1, changelog)
  • Improved performance for literal optimizations in boundary-word regexes of the form \b(foo|bar|quux)\b (v1.11.1, changelog)
  • BUG #429: (v1.11.1, changelog)
  • Fix matching bugs related to \B boundary assertion (v1.11.1, changelog)
  • Resolve inconsistencies in regex matching across internal regex engines (v1.11.1, changelog)
  • BUG #517: (v1.11.1, changelog)
  • Fix matching bug with capture groups (v1.11.1, changelog)
  • BUG #579: (v1.11.1, changelog)
  • Fix matching bug related to word boundaries in regex engine (v1.11.1, changelog)
  • BUG #779: (v1.11.1, changelog)
  • Fix a bug in regex parsing where certain repetitive regex patterns like (re)+ were not correctly equivalent to (re)(re)* (v1.11.1, changelog)
  • BUG #850: (v1.11.1, changelog)
  • Fix matching bug inconsistency between NFA and DFA regex engines (v1.11.1, changelog)
  • BUG #921: (v1.11.1, changelog)
  • Fix matching bug related to literal extraction when $ symbol is present (v1.11.1, changelog)
  • BUG #976: (v1.11.1, changelog)
  • Add documentation to replacement routines about handling potential errors or failure modes (v1.11.1, changelog)
  • BUG #1002: (v1.11.1, changelog)
  • Add corpus rejection mechanism to fuzz testing framework (v1.11.1, changelog)
  • Fixed a bug where (?-u:\B) was allowed in Unicode regexes (v1.11.1, changelog)
  • Prevented reporting of match offsets that could split a UTF-8 encoded codepoint (v1.11.1, changelog)
  • Addressed potential panicking when using split codepoint offsets to slice a &str (v1.11.1, changelog)
  • Adds code to prevent (?-u:\B) from compiling in Unicode regexes (v1.11.1, changelog)
  • Restores pre-1.8 behavior for Regex::new(r"(?-u:\B)") to not compile (v1.11.1, changelog)
  • Maintains ability for bytes::Regex to compile (?-u:\B) (v1.11.1, changelog)
  • BUG #1006: (v1.11.1, changelog)
  • Prevented potential match offset issues that could split a codepoint in &str (v1.11.1, changelog)
  • Fixed a bug where regex would incorrectly report a match at every position (v1.11.1, changelog)
  • Corrected regex matching behavior for certain alternation patterns involving simple literals (v1.11.1, changelog)
  • BUG #999: (v1.11.1, changelog)
  • Fix a bug where a match at every position is erroneously reported (v1.11.1, changelog)
  • Fixed a bug where regex compilation could panic in debug mode for regexes with large counted repetitions (v1.11.1, changelog)
  • Addressed integer overflow issue when parsing extremely large repetition counts (e.g., a{2147483516}{2147483416}{5}) (v1.11.1, changelog)
  • BUG #995: (v1.11.1, changelog)
  • Fix a bug where regex compilation with large counted repetitions could panic (v1.11.1, changelog)
  • Fixed a bug where a regex match was incorrectly reported when no actual match was found (v1.11.1, changelog)
  • Corrected match detection for regex patterns containing literal prefixes and optional word boundaries (v1.11.1, changelog)
  • BUG #981: (v1.11.1, changelog)
  • Fixed a bug where word boundaries could incorrectly interact with prefix literal optimizations, causing false positive regex matches (v1.11.1, changelog)
  • Increases the MSRV to Rust 1.60.0, which was released about 1 year ago. (v1.11.1, changelog)
  • Upgrades its dependency on aho-corasick to the recently released 1.0 (v1.11.1, changelog)
  • Upgrades its dependency on regex-syntax to the simultaneously released (v1.11.1, changelog)
  • Rewrote literal extraction code in regex-syntax (v1.11.1, changelog)
  • Simplified high-level intermediate representation (HIR) (v1.11.1, changelog)
  • Rewrite the entire regex engine from scratch (v1.11.1, changelog)
  • Integrate the regex-automata library directly into the repository (v1.11.1, changelog)
  • Refactor the regex crate to become an API shim layer on top of regex-automata (v1.11.1, changelog)
  • FEATURE #501: (v1.11.1, changelog)
  • Expanded character escaping to allow escaping of most ASCII characters, excluding alphanumeric characters and <> symbols (v1.11.1, changelog)
  • Added new routine is_escapeable_character in regex-syntax to check if a character can be escaped (v1.11.1, changelog)
  • FEATURE #547: (v1.11.1, changelog)
  • Add Regex::captures_at method to the regex API (v1.11.1, changelog)
  • FEATURE #595: (v1.11.1, changelog)
  • Capture group names can now start with _ or any Unicode alphabetic character (v1.11.1, changelog)
  • Capture group names can contain alphanumeric Unicode characters after the first character (v1.11.1, changelog)
  • Capture group names can include additional allowed characters: ., [, and ] (v1.11.1, changelog)
  • Replacement syntax remains unchanged (v1.11.1, changelog)
  • FEATURE #810: (v1.11.1, changelog)
  • Add Match::is_empty API (v1.11.1, changelog)
  • Add Match::len API (v1.11.1, changelog)
  • FEATURE #905: (v1.11.1, changelog)
  • Add an implementation of Default trait for RegexSet (v1.11.1, changelog)
  • The default implementation for RegexSet creates an empty set (v1.11.1, changelog)
  • FEATURE #908: (v1.11.1, changelog)
  • Added new method Regex::static_captures_len() that returns the number of capture groups in a regex pattern when every possible match consistently contains the same number of matching groups (v1.11.1, changelog)
  • FEATURE #955: (v1.11.1, changelog)
  • Added support for alternative named capture group syntax (?<name>re) in addition to existing (?P<name>re) syntax (v1.11.1, changelog)
  • regex-syntax now supports empty character classes. (v1.11.1, changelog)
  • regex-syntax now has an optional std feature. (This will come (v1.11.1, changelog)
  • The Hir type in regex-syntax has had a number of simplifications (v1.11.1, changelog)
  • regex-syntax has support for a new R flag for enabling CRLF (v1.11.1, changelog)
  • regex-syntax now has proper support for "regex that never (v1.11.1, changelog)
  • The hir::literal module of regex-syntax has been completely (v1.11.1, changelog)
  • Added more documentation (v1.11.1, changelog)
  • Added more examples (v1.11.1, changelog)
  • Added more advice (v1.11.1, changelog)
  • PERF: The upgrade to aho-corasick 1.0 may improve performance in some (v1.11.1, changelog)
  • BUG #514: (v1.11.1, changelog)
  • Enhance the Debug implementation for the Match type to limit output and prevent displaying the full search text (haystack) (v1.11.1, changelog)
  • BUGS #516, (v1.11.1, changelog)
  • Fix various issues with printing Hir values as regex patterns (v1.11.1, changelog)
  • BUG #610: (v1.11.1, changelog)
  • Add explicit example of foo|bar to regex syntax documentation (v1.11.1, changelog)
  • BUG #625: (v1.11.1, changelog)
  • Clarify documentation for SetMatches::len to indicate it does not represent the count of matches in the set (v1.11.1, changelog)
  • BUG #660: (v1.11.1, changelog)
  • Clarify documentation for "verbose mode" in regex syntax (v1.11.1, changelog)
  • BUG #738, (v1.11.1, changelog)
  • Fix CaptureLocations::get method to prevent panicking (v1.11.1, changelog)
  • BUG #747: (v1.11.1, changelog)
  • Improve documentation clarity for the Regex::shortest_match method (v1.11.1, changelog)
  • BUG #835: (v1.11.1, changelog)
  • Fix \p{Sc} to make it equivalent to \p{Currency_Symbol} in regex matching (v1.11.1, changelog)
  • BUG #846: (v1.11.1, changelog)
  • Add more detailed documentation explaining the CompiledTooBig error variant (v1.11.1, changelog)
  • BUG #854: (v1.11.1, changelog)
  • Clarify that regex::Regex searches operate on Unicode scalar values as the underlying text sequence (v1.11.1, changelog)
  • BUG #884: (v1.11.1, changelog)
  • Replace __Nonexhaustive variants with #[non_exhaustive] attribute (v1.11.1, changelog)
  • BUG #893: (v1.11.1, changelog)
  • Optimize case folding performance to address slowness in extreme/edge cases (v1.11.1, changelog)
  • BUG #895: (v1.11.1, changelog)
  • Reject (?-u:\W) in regex::Regex APIs (v1.11.1, changelog)
  • BUG #942: (v1.11.1, changelog)
  • Add missing void keyword to indicate "no parameters" in C API (v1.11.1, changelog)
  • BUG #965: (v1.11.1, changelog)
  • Fix \p{Lc} to be equivalent to \p{Cased_Letter} (v1.11.1, changelog)
  • BUG #975: (v1.11.1, changelog)
  • Clarify documentation for the \pX syntax in regex (v1.11.1, changelog)
  • Fixed a bug in Regex::shortest_match_at that could cause a panic with a valid offset (v1.11.1, changelog)
  • BUG #969: Fix a bug in how the reverse DFA was called for Regex::shortest_match_at. (v1.11.1, changelog)
  • Fixed a failing test specific to FreeBSD platform (v1.11.1, changelog)
  • BUG #967: Fix "no stack overflow" test which can fail due to the small stack size. (v1.11.1, changelog)
  • PERF #930: Optimize replacen. This also applies to replace, but not replace_all. (v1.11.1, changelog)
  • BUG #945: Maybe fix rustdoc rendering by just bumping a new release? (v1.11.1, changelog)
  • Upgrade regex library to Unicode version 15 (v1.11.1, changelog)
  • FEATURE #832: Upgrade to Unicode 15. (v1.11.1, changelog)
  • Upgrade Unicode support to version 14 (v1.11.1, changelog)
  • FEATURE #832: Clarify that Captures::len includes all groups, not just matching groups. (v1.11.1, changelog)
  • FEATURE #857: Add an ExactSizeIterator impl for SubCaptureMatches. (v1.11.1, changelog)
  • FEATURE #861: Improve RegexSet documentation examples. (v1.11.1, changelog)
  • FEATURE #877: Upgrade to Unicode 14. (v1.11.1, changelog)
  • BUG #792: Fix error message rendering bug. (v1.11.1, changelog)
  • Fixed a bug causing incorrect matches when using a non-greedy ? operator in regex (v1.11.1, changelog)
  • BUG #680: Fixes a bug where [[:alnum:][:^ascii:]] dropped [:alnum:] from the class. (v1.11.1, changelog)
  • BUG #859: Fixes a bug where Hir::is_match_empty returned false for \b. (v1.11.1, changelog)
  • BUG #862: Fixes a bug where 'ab??' matches 'ab' instead of 'a' in 'ab'. (v1.11.1, changelog)
  • Fixed a security vulnerability in the regex compiler that could enable a denial-of-service attack with untrusted regex patterns (v1.11.1, changelog)
  • SECURITY #GHSA-m5pq-gvj9-9vr8: Fixes a bug in the regex compiler where empty sub-expressions subverted the existing mitigations in place to enforce a size limit on compiled regexes. The Rust Security Response WG published an advisory about this: https://groups.google.com/g/rustlang-security-announcements/c/NcNNL1Jq7Yw (v1.11.1, changelog)
  • Fixed compilation failure when the pattern feature is enabled (v1.11.1, changelog)
  • Updated CI to test the pattern feature case (v1.11.1, changelog)
  • BUG #772: Fix build when pattern feature is enabled. (v1.11.1, changelog)
  • Fix a bug related to building regex with only the unicode-perl feature (v1.11.1, changelog)
  • Ensure CI build fails if compilation fails for the unicode-perl feature configuration (v1.11.1, changelog)
  • BUG #769: Fix build in regex-syntax when only the unicode-perl feature is enabled. (v1.11.1, changelog)
  • Fixed performance issue with Unicode word boundaries in regular expressions (v1.11.1, changelog)
  • Prevented premature stopping of lazy DFA search engine when unnecessary (v1.11.1, changelog)
  • Improved regex matching performance by preventing unneeded fallback to slower engine (v1.11.1, changelog)
  • Fixed a bug originally reported in a ripgrep issue (v1.11.1, changelog)
  • Fixed compilation error related to perf-literal feature when it is not enabled (v1.11.1, changelog)
  • Updated project to use Rust 2018 edition (v1.11.1, changelog)
  • Increased Minimum Supported Rust Version (MSRV) from 1.28 to 1.41 (v1.11.1, changelog)
  • Replaced custom substring search algorithms with memmem implementation from the memchr crate (v1.11.1, changelog)
  • May cause performance changes in regex matching, potentially both performance improvements and slight regressions (v1.11.1, changelog)
  • Recommends users report any significant performance issues discovered (v1.11.1, changelog)
  • Fixed compiler's size check for regex heap memory usage (v1.11.1, changelog)
  • Added accounting for heap usage of Unicode character classes (v1.11.1, changelog)
  • Potential side effect: Some regexes may now fail to compile that previously compiled successfully (v1.11.1, changelog)
  • BUG OSS-fuzz#33579: Some regexes can use more heap memory than one would expect. (v1.11.1, changelog)
  • Reduced the size of a Regex from 856 bytes (in 1.4.4) to 16 bytes (v1.11.1, changelog)
  • Fixed a regression in Regex size that was causing stack overflows in some programs (v1.11.1, changelog)
  • BUG #750: Fixes stack overflows seemingly caused by a large Regex size by decreasing its size. (v1.11.1, changelog)
  • Drops the thread_local dependency (v1.11.1, changelog)
  • Drops the lazy_static dependency (via transitive dependency removal) (v1.11.1, changelog)
  • BUG #362: Memory leaks caused by an internal caching strategy should now be fixed. (v1.11.1, changelog)
  • BUG #576: All regex types now implement UnwindSafe and RefUnwindSafe. (v1.11.1, changelog)
  • BUG #728: Add missing Replacer impls for Vec<u8>, String, Cow, etc. (v1.11.1, changelog)
  • BUG #734: Add FusedIterator and ExactSizeIterator impls to iterator types. (v1.11.1, changelog)
  • BUG #735: Add missing Debug impls to public API types. (v1.11.1, changelog)
  • Ban the use of \P{any} regex pattern (v1.11.1, changelog)
  • Previously missed banning \P{any} case, which is now included in regex restrictions (v1.11.1, changelog)
  • BUG #722: Ban \P{any} to avoid a panic in the regex compiler. Found by OSS-Fuzz. (v1.11.1, changelog)
  • Fixed \p{cf} regex property to correctly recognize the cf abbreviation for the Format general category instead of reporting "property not found" (v1.11.1, changelog)
  • BUG #719: Fixes bug that prevented \p{cf} from working. (v1.11.1, changelog)
  • Minor documentation fixes (v1.11.1, changelog)
  • Minor API additions (v1.11.1, changelog)
  • Intention to increase Minimum Supported Rust Version (MSRV) from 1.28 to at least 1.41.1 in a future release (v1.11.1, changelog)
  • Added support for OSS-Fuzz (v1.11.1, changelog)
  • FEATURE #649: Support [, ] and . in capture group names. (v1.11.1, changelog)
  • FEATURE #687: Add is_empty predicate to RegexSet. (v1.11.1, changelog)
  • FEATURE #689: Implement Clone for SubCaptureMatches. (v1.11.1, changelog)
  • FEATURE #715: Add empty constructor to RegexSet for convenience. (v1.11.1, changelog)
  • BUG #694: Fix doc example for Replacer::replace_append. (v1.11.1, changelog)
  • BUG #698: Clarify docs for s flag when using a bytes::Regex. (v1.11.1, changelog)
  • BUG #711: Clarify is_match docs to indicate that it can match anywhere in string. (v1.11.1, changelog)
  • BUG #685: Remove use of doc_comment crate, which cannot be used before Rust 1.43. (v1.11.1, changelog)
  • Added support for empty-subexpressions in regexes, such as allowing b| regex patterns (v1.11.1, changelog)
  • Improved handling of empty subexpressions, as implemented in pull request #677 (v1.11.1, changelog)
  • Bug fixes related to empty-subexpression parsing and handling (v1.11.1, changelog)
  • BUG #523: Add note to documentation that spaces can be escaped in x mode. (v1.11.1, changelog)
  • BUG #524: Add support for empty sub-expressions, including empty alternations. (v1.11.1, changelog)
  • BUG #659: Fix match bug caused by an empty sub-expression miscompilation. (v1.11.1, changelog)
  • Fixed how regex forwards crate features to regex-syntax (v1.11.1, changelog)
  • Reduced recompilations in some cases (v1.11.1, changelog)
  • BUG #665: Fix feature forwarding to regex-syntax. (v1.11.1, changelog)
  • Performance improvement of approximately 30% for compiling large regular expressions (v1.11.1, changelog)
  • PERF #657: Improvement performance of compiling large regular expressions. (v1.11.1, changelog)
  • Updated the crate to Unicode 13 (v1.11.1, changelog)
  • FEATURE #653: Update regex-syntax to Unicode 13. (v1.11.1, changelog)
  • Fixed a bug where case-insensitive flag scoping in regex was incorrectly applied, causing ((?i)a)b) to match aB when b should not be matched case-insensitively (v1.11.1, changelog)
  • BUG #640: Fix bug related to the scoping of flags in a regex. (v1.11.1, changelog)
  • Upgraded dependency thread_local from version 0.3 to version 1.0 (v1.11.1, changelog)
  • FEATURE #631: Add a Match::range method an a From<Match> for Range impl. (v1.11.1, changelog)
  • BUG #521: Corrects /-/.splitn("a", 2) to return ["a"] instead of ["a", ""]. (v1.11.1, changelog)
  • BUG #594: Improve error reporting when writing \p\. (v1.11.1, changelog)
  • BUG #627: Corrects /-/.split("a-") to return ["a", ""] instead of ["a"]. (v1.11.1, changelog)
  • BUG #633: Squash deprecation warnings for the std::error::Error::description method. (v1.11.1, changelog)
  • Added new crate features to reduce regex library size (v1.11.1, changelog)
  • Allows users to disable Unicode support (v1.11.1, changelog)
  • Allows users to trade functionality for reduced runtime performance (v1.11.1, changelog)
  • When all new features are disabled, regex dependency tree reduces to 1 crate (regex-syntax) (v1.11.1, changelog)
  • FEATURE #474: The use_std feature has been deprecated in favor of the std feature. The use_std feature will be removed in regex 2. Until then, use_std will remain as an alias for the std feature. (v1.11.1, changelog)
  • FEATURE #583: Add a substantial number of crate features shrinking regex. (v1.11.1, changelog)
  • This repository is now using rustfmt. (v1.11.1, changelog)
  • License headers have been removed from all files, in following suit with the Rust project. (v1.11.1, changelog)
  • Teddy has been removed from the regex crate, and is now part of the aho-corasick crate. See aho-corasick's new packed submodule for details. (v1.11.1, changelog)
  • The utf8-ranges crate has been deprecated, with its functionality moving into the utf8 sub-module of regex-syntax. (v1.11.1, changelog)
  • The ucd-util dependency has been dropped, in favor of implementing what little we need inside of regex-syntax itself. (v1.11.1, changelog)
  • Plan to integrate bstr crate for more sophisticated substring search algorithms (v1.11.1, changelog)
  • Plan to remove existing substring search code from regex crate (v1.11.1, changelog)
  • Plan to incorporate regex-automata crate for ahead-of-time compiled DFAs (v1.11.1, changelog)
  • Plan to optimize DFA compilation for cases where computation is inexpensive (v1.11.1, changelog)
  • Updated Unicode data tables to 12.1.0 (v1.11.1, changelog)
  • Fixed a bug that caused regex's tests to fail due to a dependency on an unreleased behavior in regex-syntax (v1.11.1, changelog)
  • BUG #593: Move an integration-style test on error messages into regex-syntax. (v1.11.1, changelog)
  • Fixed undefined behavior in a part of the SIMD code (v1.11.1, changelog)
  • Performed internal refactorings of the codebase (v1.11.1, changelog)
  • BUG #545: Improves error messages when a repetition operator is used without a number. (v1.11.1, changelog)
  • BUG #588: Removes use of a repr(Rust) union used for type punning in the Teddy matcher. (v1.11.1, changelog)
  • BUG #591: Update docs for running benchmarks and improve failure modes. (v1.11.1, changelog)
  • Fixed a regression bug that could cause the regex engine to enter an infinite loop (v1.11.1, changelog)
  • Resolved an issue originally reported in the context of ripgrep (GitHub issue #1247) (v1.11.1, changelog)
  • Fixed incorrect dependency specification for regex-syntax in Cargo.toml (v1.11.1, changelog)
  • Noted a bug in dependency version requirements that was previously uncaught (v1.11.1, changelog)
  • BUG #570: Fix regex-syntax minimal version. (v1.11.1, changelog)
  • Fixed backwards compatibility regression where Regex was no longer UnwindSafe (v1.11.1, changelog)
  • Resolved UnwindSafe issue caused by aho-corasick 0.7 library upgrade (v1.11.1, changelog)
  • Ensured AhoCorasick type is now UnwindSafe (v1.11.1, changelog)
  • BUG #568: Fix an API regression where Regex was no longer UnwindSafe. (v1.11.1, changelog)
  • Fixed unspecified bugs (v1.11.1, changelog)
  • Added performance improvement for regex when it is a simple alternation of literals (v1.11.1, changelog)
  • OPT #566: Upgrades aho-corasick to 0.7 and uses it for foo|bar|...|quux regexes. (v1.11.1, changelog)
  • BUG #527: Fix a bug where the parser would panic on patterns like ((?x)). (v1.11.1, changelog)
  • BUG #557: Fix a bug where captures could lead to an incorrect match. (v1.11.1, changelog)
  • BUG edf45e6f: Fix bug introduced in reverse suffix literal matcher in the 1.1.1 release. (v1.11.1, changelog)
  • Fixed a bug caused by literal optimizations (v1.11.1, changelog)
  • BUG 661bf53d: Fixes a bug in the reverse suffix literal optimization. This was originally reported against ripgrep. (v1.11.1, changelog)
  • Increased minimum supported Rust version (MSRV) to 1.24.1 (v1.11.1, changelog)
  • Bumped minor version number due to MSRV change (v1.11.1, changelog)
  • OPT #511, OPT #540: Improve lazy DFA construction for large regex sets. (v1.11.1, changelog)
  • FEATURE #538: Add Emoji and "break" Unicode properties. See UNICODE.md. (v1.11.1, changelog)
  • BUG #530: Add Unicode license (for data tables). (v1.11.1, changelog)
  • Various typo/doc fixups. (v1.11.1, changelog)
  • OPT #513: Improve performance of compiling large Unicode classes by 8-10%. (v1.11.1, changelog)
  • BUG #533: Fix definition of [[:blank:]] class that regressed in regex-syntax 0.5. (v1.11.1, changelog)
  • FEATURE #509: Generalize impls of the Replacer trait. (v1.11.1, changelog)
  • Bumped quickcheck dependency (v1.11.1, changelog)
  • BUG #504: Fix for Cargo's "minimal version" support. (v1.11.1, changelog)
  • BUG 1e39165f: Fix doc examples for byte regexes. (v1.11.1, changelog)
  • Exposed new lower level APIs on Regex for amortizing allocation (v1.11.1, changelog)
  • Exposed new APIs on Regex for controlling search location more granularly (v1.11.1, changelog)
  • FEATURE #493: Add a few lower level APIs for amortizing allocation and more fine-grained searching. (v1.11.1, changelog)
  • BUG 3981d2ad: Correct outdated documentation on RegexBuilder::dot_matches_new_line. (v1.11.1, changelog)
  • BUG 7ebe4ae0: Correct outdated documentation on Parser::allow_invalid_utf8 in the regex-syntax crate. (v1.11.1, changelog)
  • BUG 24c7770b: Fix a bug in the HIR printer where it wouldn't correctly escape meta characters in character classes. (v1.11.1, changelog)
  • Upgrade Unicode tables to Unicode 11 (v1.11.1, changelog)
  • Enable SIMD optimizations automatically on Rust stable (version 1.27 or newer) (v1.11.1, changelog)
  • FEATURE #486: Implement size_hint on RegexSet match iterators. (v1.11.1, changelog)
  • FEATURE #488: Update Unicode tables for Unicode 11. (v1.11.1, changelog)
  • FEATURE #490: SIMD optimizations are now enabled automatically in Rust stable, for versions 1.27 and up. No compilation flags or features need to be set. CPU support SIMD is detected automatically at runtime. (v1.11.1, changelog)
  • BUG #482: Present a better compilation error when the use_std feature isn't used. (v1.11.1, changelog)
  • We adopt Rust 1.20 as the new minimum supported version of Rust for regex. We also tentatively adopt a policy that permits bumping the minimum supported version of Rust in minor version releases of regex, but no patch releases. That is, with respect to semver, we do not strictly consider bumping the minimum version of Rust to be a breaking change, but adopt a conservative stance as a compromise. (v1.11.1, changelog)
  • Octal syntax in regular expressions has been disabled by default. This permits better error messages that inform users that backreferences aren't available. Octal syntax can be re-enabled via the corresponding option on RegexBuilder. (v1.11.1, changelog)
  • (?-u:\B) is no longer allowed in Unicode regexes since it can match at invalid UTF-8 code unit boundaries. (?-u:\b) is still allowed in Unicode regexes. (v1.11.1, changelog)
  • The From<regex_syntax::Error> impl has been removed. This formally removes the public dependency on regex-syntax. (v1.11.1, changelog)
  • A new feature, use_std, has been added and enabled by default. Disabling the feature will result in a compilation error. In the future, this may permit us to support no_std environments (w/ alloc) in a backwards compatible way. (v1.11.1, changelog)
  • Fixed parser panic bugs (v1.11.1, changelog)
  • FEATURE #459: Include C++'s standard regex library and Boost's regex library in the benchmark harness. We now include D/libphobos, C++/std, C++/boost, Oniguruma, PCRE1, PCRE2, RE2 and Tcl in the harness. (v1.11.1, changelog)
  • BUG #445: Clarify order of indices returned by RegexSet match iterator. (v1.11.1, changelog)
  • BUG #461: Improve error messages for invalid regexes like [\d-a]. (v1.11.1, changelog)
  • BUG #464: Fix a bug in the error message pretty printer that could cause a panic when a regex contained a literal \n character. (v1.11.1, changelog)
  • BUG #465: Fix a panic in the parser that was caused by applying a repetition operator to (?flags). (v1.11.1, changelog)
  • BUG #466: Fix a bug where \pC was not recognized as an alias for \p{Other}. (v1.11.1, changelog)
  • BUG #470: Fix a bug where literal searches did more work than necessary for anchored regexes. (v1.11.1, changelog)
  • FEATURE #458: The Hir type in regex-syntax now has a printer. (v1.11.1, changelog)
  • Introduced a new nightly-only feature called unstable for SIMD optimizations in regexes (v1.11.1, changelog)
  • Automatically select best CPU features at runtime for regex optimization (v1.11.1, changelog)
  • Dropped the simd crate dependency (which was previously nightly-only) (v1.11.1, changelog)
  • FEATURE #456: The regex crate now includes AVX2 optimizations in addition to the extant SSSE3 optimization. (v1.11.1, changelog)
  • BUG #455: Fix a bug where (?x)[ / - ] failed to parse. (v1.11.1, changelog)
  • BUG #454: Fix a bug in the nest limit checker being too aggressive. (v1.11.1, changelog)
  • Ground-up rewrite of the regex-syntax crate (v1.11.1, changelog)
  • Development of the rewrite took over a year (v1.11.1, changelog)
  • Added 731 new features (v1.11.1, changelog)
  • Error messages for invalid regexes have been greatly improved. You get these automatically; you don't need to do anything. In addition to better formatting, error messages will now explicitly call out the use of look around. When regex 1.0 is released, this will happen for backreferences as well. (v1.11.1, changelog)
  • Full support for intersection, difference and symmetric difference of character classes. These can be used via the &&, -- and ~~ binary operators within classes. (v1.11.1, changelog)
  • A Unicode Level 1 conformant implementation of \p{..} character classes. Things like \p{scx:Hira}, \p{age:3.2} or \p{Changes_When_Casefolded} now work. All property name and value aliases are supported, and properties are selected via loose matching. e.g., \p{Greek} is the same as \p{G r E e K}. (v1.11.1, changelog)
  • A new UNICODE.md document has been added to this repository that exhaustively documents support for UTS#18. (v1.11.1, changelog)
  • Empty sub-expressions are now permitted in most places. That is, ()+ is now a valid regex. (v1.11.1, changelog)
  • Almost everything in regex-syntax now uses constant stack space, even when performing analysis that requires structural induction. This reduces the risk of a user provided regular expression causing a stack overflow. (v1.11.1, changelog)
  • FEATURE #174: The Ast type in regex-syntax now contains span information. (v1.11.1, changelog)
  • FEATURE #424: Support \u, \u{...}, \U and \U{...} syntax for specifying code points in a regular expression. (v1.11.1, changelog)
  • FEATURE #449: Add a Replace::by_ref adapter for use of a replacer without consuming it. (v1.11.1, changelog)
  • BUG #446: We re-enable the Boyer-Moore literal matcher. (v1.11.1, changelog)
  • BUG #446: Fixes a bug in the new Boyer-Moore searcher that results in a match failure. We fix this bug by temporarily disabling Boyer-Moore. (v1.11.1, changelog)
  • BUG #437: Fixes a bug in the new Boyer-Moore searcher that results in a panic. (v1.11.1, changelog)
  • FEATURE #348: Improve performance for capture searches on anchored regex. (Contributed by @​ethanpailes. Nice work!) (v1.11.1, changelog)
  • FEATURE #419: Expand literal searching to include Tuned Boyer-Moore in some cases. (Contributed by @​ethanpailes. Nice work!) (v1.11.1, changelog)
  • BUG: The regex compiler plugin has been removed. (v1.11.1, changelog)
  • BUG: simd has been bumped to 0.2.1, which fixes a Rust nightly build error. (v1.11.1, changelog)
  • BUG: Bring the benchmark harness up to date. (v1.11.1, changelog)
  • FEATURE #374: Add impl From<Match> for &str. (v1.11.1, changelog)
  • FEATURE #380: Derive Clone and PartialEq on Error. (v1.11.1, changelog)
  • FEATURE #400: Update to Unicode 10. (v1.11.1, changelog)
  • BUG #375: Fix a bug that prevented the bounded backtracker from terminating. (v1.11.1, changelog)
  • BUG #393, BUG #394: Fix bug with replace methods for empty matches. (v1.11.1, changelog)
  • FEATURE #341: Support nested character classes and intersection operation. For example, [\p{Greek}&&\pL] matches greek letters and [[0-9]&&[^4]] matches every decimal digit except 4. (Much thanks to @​robinst, who contributed this awesome feature.) (v1.11.1, changelog)
  • BUG #321: Fix bug in literal extraction and UTF-8 decoding. (v1.11.1, changelog)
  • BUG #326: Add documentation tip about the (?x) flag. (v1.11.1, changelog)
  • BUG #333: Show additional replacement example using curly braces. (v1.11.1, changelog)
  • BUG #334: Fix bug when resolving captures after a match. (v1.11.1, changelog)
  • BUG #338: Add example that uses Captures::get to API documentation. (v1.11.1, changelog)
  • BUG #353: Fix RegexSet bug that caused match failure in some cases. (v1.11.1, changelog)
  • BUG #354: Fix panic in parser when (?x) is used. (v1.11.1, changelog)
  • BUG #358: Fix literal optimization bug with RegexSet. (v1.11.1, changelog)
  • BUG #359: Fix example code in README. (v1.11.1, changelog)
  • BUG #365: Fix bug in rure_captures_len in the C binding. (v1.11.1, changelog)
  • BUG #367: Fix byte class bug that caused a panic. (v1.11.1, changelog)
  • Fixed a major bug with the replace_all method (v1.11.1, changelog)
  • BUG #312: Fix documentation for NoExpand to reference correct lifetime parameter. (v1.11.1, changelog)
  • BUG #314: Fix a bug with replace_all when replacing a match with the empty string. (v1.11.1, changelog)
  • BUG #316: Note a missing breaking change from the 0.2.0 CHANGELOG entry. (RegexBuilder::compile was renamed to RegexBuilder::build.) (v1.11.1, changelog)
  • BUG #324: Compiling regex should only require one version of memchr crate. (v1.11.1, changelog)
  • Implement Rust regex 1.0 RFC specifications (v1.11.1, changelog)
  • Introduce version 0.2 of the regex crate (v1.11.1, changelog)
  • Plan potential 1.0 release after stability testing of 0.2 (v1.11.1, changelog)
  • POSIX character classes now require double bracketing. Previously, the regex [:upper:] would parse as the upper POSIX character class. Now it parses as the character class containing the characters :upper:. The fix to this change is to use [[:upper:]] instead. Note that variants like [[:upper:][:blank:]] continue to work. (v1.11.1, changelog)
  • The character [ must always be escaped inside a character class. (v1.11.1, changelog)
  • The characters &, - and ~ must be escaped if any one of them are repeated consecutively. For example, [&], [\&], [\&\&], [&-&] are all equivalent while [&&] is illegal. (The motivation for this and the prior change is to provide a backwards compatible path for adding character class set notation.) (v1.11.1, changelog)
  • A bytes::Regex now has Unicode mode enabled by default (like the main Regex type). This means regexes compiled with bytes::Regex::new that don't have the Unicode flag set should add (?-u) to recover the original behavior. (v1.11.1, changelog)
  • find and find_iter now return Match values instead of (usize, usize). Match values have start and end methods, which return the match offsets. Match values also have an as_str method, which returns the text of the match itself. (v1.11.1, changelog)
  • The Captures type now only provides a single iterator over all capturing matches, which should replace uses of iter and iter_pos. Uses of iter_named should use the capture_names method on Regex. (v1.11.1, changelog)
  • The at method on the Captures type has been renamed to get, and it now returns a Match. Similarly, the name method on Captures now returns a Match. (v1.11.1, changelog)
  • The replace methods now return Cow values. The Cow::Borrowed variant is returned when no replacements are made. (v1.11.1, changelog)
  • The Replacer trait has been completely overhauled. This should only impact clients that implement this trait explicitly. Standard uses of the replace methods should continue to work unchanged. If you implement the Replacer trait, please consult the new documentation. (v1.11.1, changelog)
  • The quote free function has been renamed to escape. (v1.11.1, changelog)
  • The Regex::with_size_limit method has been removed. It is replaced by RegexBuilder::size_limit. (v1.11.1, changelog)
  • The RegexBuilder type has switched from owned self method receivers to &mut self method receivers. Most uses will continue to work unchanged, but some code may require naming an intermediate variable to hold the builder. (v1.11.1, changelog)
  • The compile method on RegexBuilder has been renamed to build. (v1.11.1, changelog)
  • The free is_match function has been removed. It is replaced by compiling a Regex and calling its is_match method. (v1.11.1, changelog)
  • The PartialEq and Eq impls on Regex have been dropped. If you relied on these impls, the fix is to define a wrapper type around Regex, impl Deref on it and provide the necessary impls. (v1.11.1, changelog)
  • The is_empty method on Captures has been removed. This always returns false, so its use is superfluous. (v1.11.1, changelog)
  • The Syntax variant of the Error type now contains a string instead of a regex_syntax::Error. If you were examining syntax errors more closely, you'll need to explicitly use the regex_syntax crate to re-parse the regex. (v1.11.1, changelog)
  • The InvalidSet variant of the Error type has been removed since it is no longer used. (v1.11.1, changelog)
  • Most of the iterator types have been renamed to match conventions. If you were using these iterator types explicitly, please consult the documentation for its new name. For example, RegexSplits has been renamed to Split. (v1.11.1, changelog)
  • BUG #151: The Replacer trait has been changed to permit the caller to control allocation. (v1.11.1, changelog)
  • BUG #165: Remove the free is_match function. (v1.11.1, changelog)
  • BUG #166: Expose more knobs (available in 0.1) and remove with_size_limit. (v1.11.1, changelog)
  • BUG #168: Iterators produced by Captures now have the correct lifetime parameters. (v1.11.1, changelog)
  • BUG #175: Fix a corner case in the parsing of POSIX character classes. (v1.11.1, changelog)
  • BUG #178: Drop the PartialEq and Eq impls on Regex. (v1.11.1, changelog)
  • BUG #179: Remove is_empty from Captures since it always returns false. (v1.11.1, changelog)
  • BUG #276: Position of named capture can now be retrieved from a Captures. (v1.11.1, changelog)
  • BUG #296: Remove winapi/kernel32-sys dependency on UNIX. (v1.11.1, changelog)
  • BUG #307: Fix error on emscripten. (v1.11.1, changelog)
  • PR #292: Fixes bug #291, which was introduced by PR #290. (v1.11.1, changelog)
  • Require regex-syntax 0.3.8. (v1.11.1, changelog)
  • PR #290: Fixes bug #289, which caused some regexes with a certain combination of literals to match incorrectly. (v1.11.1, changelog)
  • PR #281: Fixes bug #280 by disabling all literal optimizations when a pattern is partially anchored. (v1.11.1, changelog)
  • Tweak criteria for using the Teddy literal matcher. (v1.11.1, changelog)
  • PR #275: Improves match verification performance in the Teddy SIMD searcher. (v1.11.1, changelog)
  • PR #278: Replaces slow substring loop in the Teddy SIMD searcher with Aho-Corasick. (v1.11.1, changelog)
  • Implemented DoubleEndedIterator on regex set match iterators. (v1.11.1, changelog)
  • Release regex-syntax 0.3.5 with a minor bug fix. (v1.11.1, changelog)
  • Fix bug #272. (v1.11.1, changelog)
  • Fix bug #277. (v1.11.1, changelog)
  • PR #270: Fixes bugs #264, #268 and an unreported where the DFA cache size could be drastically underestimated in some cases (leading to high unexpected memory usage). (v1.11.1, changelog)
  • Release regex-syntax 0.3.4. (v1.11.1, changelog)
  • Bump regex-syntax dependency version for regex to 0.3.4. (v1.11.1, changelog)
  • PR #262: Fixes a number of small bugs caught by fuzz testing (AFL). (v1.11.1, changelog)
  • PR #236: Fix a bug in how suffix literals were extracted, which could lead to invalid match behavior in some cases. (v1.11.1, changelog)
  • PR #231: Add SIMD accelerated multiple pattern search. (v1.11.1, changelog)
  • PR #228: Reintroduce the reverse suffix literal optimization. (v1.11.1, changelog)
  • PR #226: Implements NFA state compression in the lazy DFA. (v1.11.1, changelog)
  • PR #223: A fully anchored RegexSet can now short-circuit. (v1.11.1, changelog)
  • PR #216: Tweak the threshold for running backtracking. (v1.11.1, changelog)
  • PR #217: Add upper limit (from the DFA) to capture search (for the NFA). (v1.11.1, changelog)
  • PR #218: Add rure, a C API. (v1.11.1, changelog)
  • PR #210: Fixed a performance bug in bytes::Regex::replace where extend was used instead of extend_from_slice. (v1.11.1, changelog)
  • PR #211: Fixed a bug in the handling of word boundaries in the DFA. (v1.11.1, changelog)
  • PR #213: Added RE2 and Tcl to the benchmark harness. Also added a CLI utility from running regexes using any of the following regex engines: PCRE1, PCRE2, Oniguruma, RE2, Tcl and of course Rust's own regexes. (v1.11.1, changelog)
  • PR #201: Fix undefined behavior in the regex! compiler plugin macro. (v1.11.1, changelog)
  • PR #205: More improvements to DFA performance. Competitive with RE2. See PR for benchmarks. (v1.11.1, changelog)
  • PR #209: Release 0.1.66 was semver incompatible since it required a newer version of Rust than previous releases. This PR fixes that. (And 0.1.66 was yanked.) (v1.11.1, changelog)
  • Speculative support for Unicode word boundaries was added to the DFA. This should remove the last common case that disqualified use of the DFA. (v1.11.1, changelog)
  • An optimization that scanned for suffix literals and then matched the regular expression in reverse was removed because it had worst case quadratic time complexity. It was replaced with a more limited optimization where, given any regex of the form re$, it will be matched in reverse from the end of the haystack. (v1.11.1, changelog)
  • PR #202: The inner loop of the DFA was heavily optimized to improve cache locality and reduce the overall number of instructions run on each iteration. This represents the first use of unsafe in regex (to elide bounds checks). (v1.11.1, changelog)
  • PR #200: Use of the mempool crate (which used thread local storage) was replaced with a faster version of a similar API in @​Amanieu's thread_local crate. It should reduce contention when using a regex from multiple threads simultaneously. (v1.11.1, changelog)
  • PCRE2 JIT benchmarks were added. A benchmark comparison can be found here. (Includes a comparison with PCRE1's JIT and Oniguruma.) (v1.11.1, changelog)
  • A bug where word boundaries weren't being matched correctly in the DFA was fixed. This only affected use of bytes::Regex. (v1.11.1, changelog)
  • #160: Captures now has a Debug impl. (v1.11.1, changelog)
  • Fixed a bug in the regex::Captures::get_match API with the lifetime parameter of the returned Match (v1.12.1, changelog)
  • Yanked the 1.12.0 release due to the lifetime parameter issue (v1.12.1, changelog)
  • Fix excessive memory consumption (v1.12.1, changelog)
  • Added new regex::Captures::get_match API (v1.12.1, changelog)
  • FEATURE #1146: (v1.12.1, changelog)
  • Add Capture::get_match() method for returning the overall regex match without requiring unwrap() (v1.12.1, changelog)
  • BUG #1083: (v1.12.1, changelog)
  • Fixed a panic in the lazy DFA algorithm for extremely large regular expressions (v1.12.1, changelog)
  • BUG #1116: (v1.12.1, changelog)
  • Fixed a memory usage regression for large regular expressions that was introduced in regex version 1.9 (v1.12.1, changelog)
  • BUG #1195: (v1.12.1, changelog)
  • Fix universal start states in sparse DFA (v1.12.1, changelog)
  • BUG #1295: (v1.12.1, changelog)
  • Fixes a panic when deserializing a corrupted dense DFA (v1.12.1, changelog)
  • BUG 8f5d9479: (v1.12.1, changelog)
  • Make regex_automata::meta::Regex::find return None when WhichCaptures::None is used consistently (v1.12.1, changelog)
  • BUG #1297: (v1.12.1, changelog)
  • Improve memory usage by trimming excess memory capacity in some internal spots of the library/code (v1.12.1, changelog)
  • Recommend using std::sync::LazyLock as the preferred synchronization primitive (v1.12.1, changelog)
  • Merged multiple typo fixes (v1.12.1, changelog)
  • Merged multiple lint fixes (v1.12.1, changelog)
  • BUG #1217: (v1.12.1, changelog)
  • Recommending switching from once_cell to std::sync::LazyLock (v1.12.1, changelog)
  • BUG #1225: (v1.12.1, changelog)
  • Add DFA::set_prefilter method to the regex-automata library (v1.12.1, changelog)
  • BUG #1165: (v1.12.1, changelog)
  • Remove std dependency from perf-literal-multisubstring crate feature (v1.12.1, changelog)
  • Clarify documentation for (?R)$ regex pattern meaning (v1.12.1, changelog)
  • BUG #1281: (v1.12.1, changelog)
  • Remove fuzz/ directory from published crate on crates.io (v1.12.1, changelog)
  • Add new regex::SetMatches::matched_all method (v1.12.1, changelog)
  • Fixed the unstable crate feature to enable std::str::Pattern trait integration (v1.12.1, changelog)
  • Fix the Pattern trait implementation due to nightly API changes (v1.12.1, changelog)
  • Improve handling of invalid UTF-8 characters in the Debug implementation of regex::bytes::Match (v1.12.1, changelog)
  • Fixed a search regression where incorrect matches could be reported (v1.12.1, changelog)
  • Revert broadening of reverse suffix literal optimization from version 1.10.1 (v1.12.1, changelog)
  • Broadened some literal regex optimizations (v1.12.1, changelog)
  • Relax ASCII compatibility constraints to permit regexes like (?-u:☃) which previously would not have been allowed (v1.12.1, changelog)
  • Broadened the reverse suffix optimization to apply in more use cases or scenarios (v1.12.1, changelog)
  • Added support for word boundary start assertion \< (v1.12.1, changelog)
  • Added GNU extension regex word boundary markers \< and \> to the regex crate (v1.12.1, changelog)
  • Added \b{start} and \b{end} assertions as aliases for \< and \>, respectively (v1.12.1, changelog)
  • Added \b{start-half} and \b{end-half} word boundary assertions to the regex engine (v1.12.1, changelog)
  • Introduced more flexible word boundary matching compared to other regex implementations (v1.12.1, changelog)
  • Designed new assertions to improve word matching support for grep-like programs (v1.12.1, changelog)
  • Add support for \< and \> word boundary assertions in regex (v1.12.1, changelog)
  • Unicode character class operations have been optimized in regex-syntax (v1.12.1, changelog)
  • Fix panics that can occur during Ast->Hir translation in a previously unreachable code path within the regex crate (v1.12.1, changelog)
  • Remove API guarantees that link the u flag to a specific HIR representation (v1.12.1, changelog)
  • Breaking change release of regex-automata (v1.12.1, changelog)
  • Look enum has new variants (v1.12.1, changelog)
  • LookSet type now uses u32 instead of u16 to represent bitset of look-around assertions (v1.12.1, changelog)
  • Potential minor code modifications required for direct Ast type users (v1.12.1, changelog)
  • Resolved an issue that could potentially trigger a panic during search operations due to a broken computational invariant (v1.12.1, changelog)
  • Fixed a performance bug related to sharing a regex across multiple threads (v1.12.1, changelog)
  • Added guidance for avoiding regex contention by using lower-level APIs from regex-automata that require explicit state passing (v1.12.1, changelog)
  • Recommended cloning regex and sending to other threads explicitly as an alternative solution to contention (v1.12.1, changelog)
  • Noted potential limitation with OnceLock, lazy_static, and once_cell when using the cloning approach (v1.12.1, changelog)
  • Sharded the free-list across threads to reduce contention performance problems (v1.12.1, changelog)
  • Fixed performance issue with regex when experiencing high contention (v1.12.1, changelog)
  • Resolved slow-downs caused by concurrent regex usage (v1.12.1, changelog)
  • Improved regex performance under high concurrency conditions (v1.12.1, changelog)
  • Fix a bug related to incorrect prefilter configuration for a RegexSet (v1.12.1, changelog)
  • Fixed a bug where certain regex searches could produce incorrect match offsets (v1.12.1, changelog)
  • Addressed an issue with match offset reporting for complex regex patterns lacking prefix or suffix literals (v1.12.1, changelog)
  • Corrected handling of regexes with inner literals and conditional prefix matching (v1.12.1, changelog)
  • Fix a bug in the reverse inner literal optimization that was incorrectly reporting match offsets (v1.12.1, changelog)
  • Fixed memory usage regression specifically for RegexSet (v1.12.1, changelog)
  • Reduced excessive heap memory allocation that was occurring in cases beyond pre-1.9.0 versions (v1.12.1, changelog)
  • Fix a memory usage regression when using a RegexSet (v1.12.1, changelog)
  • Reverted internal regex engine allocation strategy to previous on-demand method (v1.12.1, changelog)
  • Fixed memory usage regression introduced in regex 1.9 release (v1.12.1, changelog)
  • Change the allocation strategy for the backtracker to reduce aggressiveness of memory allocation (v1.12.1, changelog)
  • Major internal rewrite of the regex crate's internals (v1.12.1, changelog)
  • Performance improvements for regex searches (v1.12.1, changelog)
  • Several internal API additions (unspecified details) (v1.12.1, changelog)
  • Enhanced Unicode scalar value handling, excluding \r and \n (v1.12.1, changelog)
  • Modified (?m:^) and (?m:$) multiline anchors to match around both \r and \n (v1.12.1, changelog)
  • Prevented (?m:^) and (?m:$) from matching between \r and \n (v1.12.1, changelog)
  • Allow the line terminator for (?m:^) and (?m:$) to be any arbitrary byte instead of a previous more restricted set of line terminators (v1.12.1, changelog)
  • Can be used without the standard library (previously unspecified limitation removed) (v1.12.1, changelog)
  • regex-lite prioritizes smaller binary size and faster compile times (v1.12.1, changelog)
  • regex-lite is a completely separate implementation with no shared code with the main regex crate (v1.12.1, changelog)
  • Added R flag to opt into CRLF mode for regex matching (v1.12.1, changelog)
  • New regex mode allows matching just before \r\n using flag e.g., (?mR:$) (v1.12.1, changelog)
  • regex can now be used without requiring the std feature, only needing alloc (v1.12.1, changelog)
  • Added RegexBuilder::line_terminator method to configure behavior of (?m:^) and (?m:$) multiline anchors (v1.12.1, changelog)
  • Add new Captures::extract method to provide easier access to capture groups (v1.12.1, changelog)
  • Add regex-lite crate to provide a lightweight alternative with smaller binary sizes and faster compile times (v1.12.1, changelog)
  • Added a one-pass DFA engine for faster capture group matching (v1.12.1, changelog)
  • Inner literals are now used to accelerate regex searches by scanning for specific characters like @ (v1.12.1, changelog)
  • Improved literal optimizations for word boundary regexes (e.g. \b(foo|bar|quux)\b) (v1.12.1, changelog)
  • Optimized performance for word boundary alternation patterns (v1.12.1, changelog)
  • Performance enhancement for specific regex boundary matching scenarios (from issue #891) (v1.12.1, changelog)
  • Fix matching bug with word boundaries (v1.12.1, changelog)
  • Fixed a bug in regex matching where certain repeating group patterns like (re)+ were not correctly interpreted as equivalent to (re)(re)* (v1.12.1, changelog)
  • Fix matching bug involving literal extraction when encountering the $ character (v1.12.1, changelog)
  • Add documentation to replacement routines about dealing with fallibility (v1.12.1, changelog)
  • Add corpus rejection technique in fuzz testing (v1.12.1, changelog)
  • Prevented reporting match offsets that could split UTF-8 encoded codepoints (v1.12.1, changelog)
  • Addressed potential panicking when using split codepoint match offsets with &str slicing (v1.12.1, changelog)
  • Prevent (?-u:\B) from compiling in Unicode regexes in regex 1.8.4 (v1.12.1, changelog)
  • Ensure underlying syntax restrictions are enforced for Unicode regex compilation (v1.12.1, changelog)
  • Fixed a bug where the negative Unicode boundary assertion (?-u:\B) was incorrectly permitted in Unicode regular expressions (v1.12.1, changelog)
  • Prevented potential match offset issues that could previously split codepoints in string slices (&str) (v1.12.1, changelog)
  • Resolved an issue with regex matching for specific alternation scenarios involving simple literals (v1.12.1, changelog)
  • Fixed a bug where regex matching incorrectly reported a match at every position (v1.12.1, changelog)
  • Addressed an integer overflow issue in regex parsing for complex repetition scenarios like a{2147483516}{2147483416}{5} (v1.12.1, changelog)
  • Fix a bug causing panic during regex compilation when using large counted repetitions (v1.12.1, changelog)
  • Fixed a bug related to word boundary interactions with prefix literal optimizations that could cause false positive matches (v1.12.1, changelog)
  • Rewrite of entire regex engine (v1.12.1, changelog)
  • Integrate regex-automata library into main repository (v1.12.1, changelog)
  • Expanded character escape capabilities to allow escaping of any ASCII character except [0-9A-Za-z<>] (v1.12.1, changelog)
  • Capture group names now support Unicode alphabetic characters at the start (v1.12.1, changelog)
  • Capture group names can begin with _ (v1.12.1, changelog)
  • Added a new method Regex::static_captures_len() that returns the number of capture groups in a regex pattern when the number of matching groups is consistent across all possible matches (v1.12.1, changelog)
  • Added support for alternate syntax (?<name>re) for named captures alongside existing (?P<name>re) syntax in regex (v1.12.1, changelog)
  • Included additional examples (v1.12.1, changelog)
  • Provided new advice about usage (v1.12.1, changelog)
  • Improve Debug implementation for Match to avoid displaying the full haystack in debug output (v1.12.1, changelog)
  • Clarify documentation for SetMatches::len method to specify that it does not represent the number of matches in the set (v1.12.1, changelog)
  • Resolved issue #950 related to potential panic in CaptureLocations::get (v1.12.1, changelog)
  • Improve/update documentation for the Regex::shortest_match method (v1.12.1, changelog)
  • Add more clarifying documentation to the CompiledTooBig error variant (v1.12.1, changelog)
  • Clarify that regex::Regex searches treating the input haystack as a sequence of Unicode scalar values (v1.12.1, changelog)
  • Optimize case folding performance in regex to address slowness in certain complex scenarios (v1.12.1, changelog)
  • Fix \p{Lc} character class to make it equivalent to \p{Cased_Letter} (v1.12.1, changelog)
  • Clarify documentation for \pX syntax (v1.12.1, changelog)
  • Fixed failing test on FreeBSD (v1.12.1, changelog)
  • Upgraded Unicode support to version 15 (v1.12.1, changelog)
  • Upgrade to Unicode 14 (v1.12.1, changelog)
  • Fixed a bug that produced incorrect matches when a non-greedy ? operator was used (v1.12.1, changelog)
  • Updated CI to test the compilation case with pattern feature (v1.12.1, changelog)
  • Improved CI build configuration to properly fail the build on compilation errors for the unicode-perl feature configuration (v1.12.1, changelog)
  • Fixed a performance bug related to Unicode word boundaries in regex (v1.12.1, changelog)
  • Resolved an issue where the lazy DFA could prematurely stop searching for certain regex patterns and inputs (v1.12.1, changelog)
  • Prevented unnecessary fallback to a slower regex engine when the lazy DFA stops searching unnecessarily (v1.12.1, changelog)
  • Fixed a bug previously reported in the ripgrep issue tracker (tracked in issue #1860) (v1.12.1, changelog)
  • Fixed compilation error when the perf-literal feature is not enabled (v1.12.1, changelog)
  • Update codebase to Rust 2018 edition (v1.12.1, changelog)
  • Potentially altered regex performance profile, with some cases becoming slower and others becoming significantly faster (v1.12.1, changelog)
  • Dropped thread_local dependency (v1.12.1, changelog)
  • Dropped lazy_static dependency as a transitive consequence of removing thread_local (v1.12.1, changelog)
  • General bug fixes (unspecified) (v1.12.1, changelog)
  • Added missing standard trait implementations for some types in the public API (v1.12.1, changelog)
  • Banned the \P{any} regex pattern, which was previously missed in restrictions on empty character classes (v1.12.1, changelog)
  • Expanded existing restrictions on empty character classes to include \P{any} case (v1.12.1, changelog)
  • Fixed \p{cf} property recognition to correctly handle the Format general category abbreviation (v1.12.1, changelog)
  • Resolved "property not found" error when using \p{cf} in regex pattern matching (v1.12.1, changelog)
  • Added some minor API additions (v1.12.1, changelog)
  • Intends to increase minimum supported Rust version (MSRV) to at least Rust 1.41.1 soon (v1.12.1, changelog)
  • Allow empty subexpressions in regexes, such as b| (v1.12.1, changelog)
  • Improved support for handling empty-subexpressions in regex parsing (v1.12.1, changelog)
  • Update the crate's Unicode support to version 13 (v1.12.1, changelog)
  • Fixed a bug where regex flag scoping was incorrect, specifically with case-insensitive flags (v1.12.1, changelog)
  • Corrected the matching behavior of regex patterns with inline flags like ((?i)a)b) to properly respect flag scoping (v1.12.1, changelog)
  • Ensured that flags like case-insensitivity are applied only to the intended part of the regex pattern (v1.12.1, changelog)
  • Ability to disable Unicode support to shrink dependency tree (v1.12.1, changelog)
  • Reduced regex's dependency tree to 1 crate (regex-syntax) when all features are disabled (v1.12.1, changelog)
  • Introduced configurable features that can impact runtime performance (v1.12.1, changelog)
  • Plan to integrate the bstr crate to provide more sophisticated substring search algorithms (v1.12.1, changelog)
  • Plan to replace existing substring search code in regex with algorithms from bstr (v1.12.1, changelog)
  • Plan to integrate the regex-automata crate to provide ahead-of-time compiled DFAs (v1.12.1, changelog)
  • Plan to use ahead-of-time compiled DFAs when they can be computed efficiently (v1.12.1, changelog)
  • Fixed an undefined behavior instance in the SIMD code implementation (v1.12.1, changelog)
  • Addressed a bug originally reported in the context of ripgrep (v1.12.1, changelog)
  • Resolved issue [BUG #557] which was causing the infinite loop problem (v1.12.1, changelog)
  • Fixed bug in regex's dependency specification on regex-syntax version (v1.12.1, changelog)
  • Corrected communication of dependency requirements in Cargo.toml (v1.12.1, changelog)
  • Fixed backwards compatibility regression with Regex's UnwindSafe trait (v1.12.1, changelog)
  • Ensured compatibility with aho-corasick's AhoCorasick type (v1.12.1, changelog)
  • Fix unspecified bugs (v1.12.1, changelog)
  • Add performance improvement for regex with simple literal alternation (v1.12.1, changelog)
  • Added APIs to control search location more granularly (v1.12.1, changelog)
  • Fixed several parser-related bugs that could cause panics (v1.12.1, changelog)
  • Improved parser stability and error handling (v1.12.1, changelog)
  • Added a new nightly-only unstable feature that enables SIMD optimizations for certain regex types (v1.12.1, changelog)
  • Implemented automatic CPU feature selection at runtime for regex optimizations (v1.12.1, changelog)
  • Dropped the simd crate dependency for the regex crate (v1.12.1, changelog)
  • Indicates 731 new features (though no specifics are provided) (v1.12.1, changelog)
  • Minimum supported Rust version is now 1.12 (v1.12.1, changelog)
  • This is a new major release of the regex crate (v1.12.1, changelog)
  • Implementing regex 1.0 RFC (v1.12.1, changelog)
  • Releasing version 0.2 as a preliminary release before 1.0 (v1.12.1, changelog)

fossabot analyzed this PR using dependency research.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants