regex 1.7.2

An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
Documentation
mat!(match_flag_case, "(?-u)(?i)abc", "ABC", Some((0, 3)));
mat!(match_flag_weird_case, "(?-u)(?i)a(?-i)bc", "Abc", Some((0, 3)));
mat!(match_flag_weird_case_not, "(?-u)(?i)a(?-i)bc", "ABC", None);
mat!(match_flag_case_dotnl, "(?-u)(?is)a(?u:.)", "A\n", Some((0, 2)));
mat!(
    match_flag_case_dotnl_toggle,
    "(?-u)(?is)a(?u:.)(?-is)a(?u:.)",
    "A\nab",
    Some((0, 4))
);
mat!(
    match_flag_case_dotnl_toggle_not,
    "(?-u)(?is)a(?u:.)(?-is)a(?u:.)",
    "A\na\n",
    None
);
mat!(
    match_flag_case_dotnl_toggle_ok,
    "(?-u)(?is)a(?u:.)(?-is:a(?u:.))?",
    "A\na\n",
    Some((0, 2))
);
mat!(
    match_flag_multi,
    r"(?-u)(?m)(?:^\d+$\n?)+",
    "123\n456\n789",
    Some((0, 11))
);
mat!(match_flag_ungreedy, "(?U)a+", "aa", Some((0, 1)));
mat!(match_flag_ungreedy_greedy, "(?U)a+?", "aa", Some((0, 2)));
mat!(match_flag_ungreedy_noop, "(?U)(?-U)a+", "aa", Some((0, 2)));