template<class BidirectionalIterator, class Allocator, class charT, class traits>
  bool regex_search(BidirectionalIterator first, BidirectionalIterator last,
                    match_results<BidirectionalIterator, Allocator>& m,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);
| Element | Value | |
| m.size() | 1 + e.mark_count() | |
| m.empty() | false | |
| m.prefix().first | first | |
| m.prefix().second | m[0].first | |
| m.prefix().matched | m.prefix().first != m.prefix().second | |
| m.suffix().first | m[0].second | |
| m.suffix().second | last | |
| m.suffix().matched | m.suffix().first != m.suffix().second | |
| m[0].first | The start of the sequence of characters that matched the regular expression | |
| m[0].second | The end of the sequence of characters that matched the regular expression | |
| m[0].matched | true | |
| m[n].first | ||
| m[n].second | ||
| m[n].matched | For all integers 0 < n < m.size(), true if sub-expression n
participated in the match, false otherwise. | 
template<class charT, class Allocator, class traits>
  bool regex_search(const charT* str, match_results<const charT*, Allocator>& m,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);
template<class ST, class SA, class Allocator, class charT, class traits>
  bool regex_search(const basic_string<charT, ST, SA>& s,
                    match_results<typename basic_string<charT, ST, SA>::const_iterator,
                                  Allocator>& m,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);
template<class BidirectionalIterator, class charT, class traits>
  bool regex_search(BidirectionalIterator first, BidirectionalIterator last,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);
template<class charT, class traits>
  bool regex_search(const charT* str,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);
template<class ST, class SA, class charT, class traits>
  bool regex_search(const basic_string<charT, ST, SA>& s,
                    const basic_regex<charT, traits>& e,
                    regex_constants::match_flag_type flags = regex_constants::match_default);