16 bool ignore_case, std::string_view input) {
18 typename T::regex_type;
22 T::create_instance(pattern, ignore_case)
23 } -> std::same_as<std::optional<typename T::regex_type>>;
27 T::regex_search(input, std::declval<typename T::regex_type&>())
28 } -> std::same_as<std::optional<std::vector<std::optional<std::string>>>>;
32 T::regex_match(input, std::declval<typename T::regex_type&>())
33 } -> std::same_as<bool>;
36 { T(std::declval<const T&>()) } -> std::same_as<T>;
39 { T(std::declval<T&&>()) } -> std::same_as<T>;