1c67d6573Sopenharmony_ci#![cfg_attr(feature = "pattern", feature(pattern))]
2c67d6573Sopenharmony_ci
3c67d6573Sopenharmony_cimacro_rules! regex_new {
4c67d6573Sopenharmony_ci    ($re:expr) => {{
5c67d6573Sopenharmony_ci        use regex::internal::ExecBuilder;
6c67d6573Sopenharmony_ci        ExecBuilder::new($re)
7c67d6573Sopenharmony_ci            .bounded_backtracking()
8c67d6573Sopenharmony_ci            .bytes(true)
9c67d6573Sopenharmony_ci            .build()
10c67d6573Sopenharmony_ci            .map(|e| e.into_regex())
11c67d6573Sopenharmony_ci    }};
12c67d6573Sopenharmony_ci}
13c67d6573Sopenharmony_ci
14c67d6573Sopenharmony_cimacro_rules! regex {
15c67d6573Sopenharmony_ci    ($re:expr) => {
16c67d6573Sopenharmony_ci        regex_new!($re).unwrap()
17c67d6573Sopenharmony_ci    };
18c67d6573Sopenharmony_ci}
19c67d6573Sopenharmony_ci
20c67d6573Sopenharmony_cimacro_rules! regex_set_new {
21c67d6573Sopenharmony_ci    ($re:expr) => {{
22c67d6573Sopenharmony_ci        use regex::internal::ExecBuilder;
23c67d6573Sopenharmony_ci        ExecBuilder::new_many($re)
24c67d6573Sopenharmony_ci            .bounded_backtracking()
25c67d6573Sopenharmony_ci            .bytes(true)
26c67d6573Sopenharmony_ci            .build()
27c67d6573Sopenharmony_ci            .map(|e| e.into_regex_set())
28c67d6573Sopenharmony_ci    }};
29c67d6573Sopenharmony_ci}
30c67d6573Sopenharmony_ci
31c67d6573Sopenharmony_cimacro_rules! regex_set {
32c67d6573Sopenharmony_ci    ($res:expr) => {
33c67d6573Sopenharmony_ci        regex_set_new!($res).unwrap()
34c67d6573Sopenharmony_ci    };
35c67d6573Sopenharmony_ci}
36c67d6573Sopenharmony_ci
37c67d6573Sopenharmony_ci// Must come before other module definitions.
38c67d6573Sopenharmony_ciinclude!("macros_str.rs");
39c67d6573Sopenharmony_ciinclude!("macros.rs");
40c67d6573Sopenharmony_ci
41c67d6573Sopenharmony_cimod api;
42c67d6573Sopenharmony_cimod api_str;
43c67d6573Sopenharmony_cimod crazy;
44c67d6573Sopenharmony_cimod flags;
45c67d6573Sopenharmony_cimod fowler;
46c67d6573Sopenharmony_cimod multiline;
47c67d6573Sopenharmony_cimod noparse;
48c67d6573Sopenharmony_cimod regression;
49c67d6573Sopenharmony_cimod replace;
50c67d6573Sopenharmony_cimod searcher;
51c67d6573Sopenharmony_cimod set;
52c67d6573Sopenharmony_cimod suffix_reverse;
53c67d6573Sopenharmony_ci#[cfg(feature = "unicode")]
54c67d6573Sopenharmony_cimod unicode;
55c67d6573Sopenharmony_ci#[cfg(feature = "unicode-perl")]
56c67d6573Sopenharmony_cimod word_boundary;
57c67d6573Sopenharmony_ci#[cfg(feature = "unicode-perl")]
58c67d6573Sopenharmony_cimod word_boundary_unicode;
59