1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//! A derivative-based regular expression engine.
//!
//! The primary entry point is [`Regex`] for simple patterns, or [`RegexBuilder`]
//! for constructing regexes programmatically from [`RegexAst`] trees.
//!
//! **Anchored matching.** The engine only checks whether a regex matches the
//! input from the beginning — there is an implied `\A` anchor. It does not
//! search for matches within the input.
//!
//! **Lookahead.** A single look-ahead at the end of the regex is supported
//! via the `A(?P<stop>B)` syntax. See [`Regex::lookahead_len`] for details.
//!
//! # References
//!
//! - [Regular-expression derivatives reexamined (Owens et al.)](https://www.khoury.northeastern.edu/home/turon/re-deriv.pdf)
//! - [Derivative Based Nonbacktracking Real-World Regex Matching with Backtracking Semantics](https://www.microsoft.com/en-us/research/uploads/prod/2023/04/pldi23main-p249-final.pdf)
//! - [Derivative Based Extended Regular Expression Matching Supporting Intersection, Complement and Lookarounds](https://arxiv.org/abs/2309.14401)
pub use ;
pub use ;
pub use ;
pub use map_ast;
/// The hash random state used throughout the crate.
///
/// When the `ahash` feature is enabled (the default), this is
/// [`ahash::RandomState`]; otherwise it falls back to the standard library's
/// [`std::collections::hash_map::RandomState`].
pub type RandomState = RandomState;
/// The hash random state used throughout the crate.
///
/// When the `ahash` feature is enabled (the default), this is
/// [`ahash::RandomState`]; otherwise it falls back to the standard library's
/// [`std::collections::hash_map::RandomState`].
pub type RandomState = RandomState;
/// A [`std::collections::HashMap`] using the crate's [`RandomState`] hasher.
pub type HashMap<K, V> = HashMap;
/// A [`std::collections::HashSet`] using the crate's [`RandomState`] hasher.
pub type HashSet<K> = HashSet;
/// Low-level building blocks for advanced use cases.
///
/// Most users should prefer the high-level [`Regex`] and [`RegexBuilder`] APIs.
/// The types in this module expose the internal expression set, derivative
/// cache, and other structures needed to build custom matching pipelines.
pub const VERSION: &str = concat!;