mat!(uni_literal, u!(r"☃"), "☃", Some((0, 3)));
mat!(uni_literal_plus, u!(r"☃+"), "☃", Some((0, 3)));
mat!(uni_literal_casei_plus, u!(r"(?i)☃+"), "☃", Some((0, 3)));
mat!(uni_class_plus, u!(r"[☃Ⅰ]+"), "☃", Some((0, 3)));
mat!(uni_one, u!(r"\pN"), "Ⅰ", Some((0, 3)));
mat!(uni_mixed, u!(r"\pN+"), "Ⅰ1Ⅱ2", Some((0, 8)));
mat!(uni_not, u!(r"\PN+"), "abⅠ", Some((0, 2)));
mat!(uni_not_class, u!(r"[\PN]+"), "abⅠ", Some((0, 2)));
mat!(uni_not_class_neg, u!(r"[^\PN]+"), "abⅠ", Some((2, 5)));
mat!(uni_case, u!(r"(?i)Δ"), "δ", Some((0, 2)));
mat!(uni_case_upper, u!(r"\p{Lu}+"), "ΛΘΓΔα", Some((0, 8)));
mat!(uni_case_upper_nocase_flag, u!(r"(?i)\p{Lu}+"), "ΛΘΓΔα", Some((0, 10)));
mat!(uni_case_upper_nocase, u!(r"\p{L}+"), "ΛΘΓΔα", Some((0, 10)));
mat!(uni_case_lower, u!(r"\p{Ll}+"), "ΛΘΓΔα", Some((8, 10)));

// Test the Unicode friendliness of Perl character classes.
mat!(uni_perl_w, u!(r"\w+"), "dδd", Some((0, 4)));
mat!(uni_perl_w_not, u!(r"\w+"), "⥡", None);
mat!(uni_perl_w_neg, u!(r"\W+"), "⥡", Some((0, 3)));
mat!(uni_perl_d, u!(r"\d+"), "1२३9", Some((0, 8)));
mat!(uni_perl_d_not, u!(r"\d+"), "Ⅱ", None);
mat!(uni_perl_d_neg, u!(r"\D+"), "Ⅱ", Some((0, 3)));
mat!(uni_perl_s, u!(r"\s+"), " ", Some((0, 3)));
mat!(uni_perl_s_not, u!(r"\s+"), "☃", None);
mat!(uni_perl_s_neg, u!(r"\S+"), "☃", Some((0, 3)));

// And do the same for word boundaries.
mat!(uni_boundary_none, u!(r"\d\b"), "6δ", None);
mat!(uni_boundary_ogham, u!(r"\d\b"), "6 ", Some((0, 1)));
mat!(uni_not_boundary_none, u!(r"\d\B"), "6δ", Some((0, 1)));
mat!(uni_not_boundary_ogham, u!(r"\d\B"), "6 ", None);
