// { dg-do run { target c++11 } }
// { dg-timeout-factor 2 }
#include <regex>
#include <testsuite_hooks.h>
void
test01()
{
  std::cmatch sm;
  VERIFY( sm.empty() );
  VERIFY( sm.size() == 0 );
  VERIFY( sm.begin() == sm.end() );  // PR libstdc++/83600
  bool matched = std::regex_match("a", sm, std::regex("b"));
  VERIFY( ! matched );
  VERIFY( sm.ready() );
  VERIFY( sm.empty() );
  VERIFY( sm.size() == 0 );
  VERIFY( sm.begin() == sm.end() ); // PR libstdc++/102667
  matched = std::regex_match("a", sm, std::regex("a"));
  VERIFY( matched );
  VERIFY( sm.ready() );
  VERIFY( ! sm.empty() );
  VERIFY( sm.size() == 1 );
  VERIFY( (sm.end() - sm.begin()) == 1 );
  matched = std::regex_search("abcd", sm, std::regex("(b)(c)"));
  VERIFY( matched );
  VERIFY( sm.ready() );
  VERIFY( ! sm.empty() );
  VERIFY( sm.size() == 3 );
  VERIFY( (sm.end() - sm.begin()) == 3 );
}
int main()
{
  test01();
}