19 bool ignore_case, std::string_view input) {
21 typename T::regex_type;
25 T::create_instance(pattern, ignore_case)
26 } -> std::same_as<std::optional<typename T::regex_type>>;
30 T::regex_search(input, std::declval<typename T::regex_type&>())
31 } -> std::same_as<std::optional<std::vector<std::optional<std::string>>>>;
35 T::regex_match(input, std::declval<typename T::regex_type&>())
36 } -> std::same_as<bool>;
39 { T(std::declval<const T&>()) } -> std::same_as<T>;
42 { T(std::declval<T&&>()) } -> std::same_as<T>;