Ejemplo de expresiones regulares en C++11

Las mejores de C++11 son evidentes. Dos ejemplos son la facilidad de convertir un entero a cadena en C++ o utilizar bucles for basados en rangos.

Aquí os muestro, mediante un ejemplo, la facilidad con la que en C++11 se manejan expresiones regulares:

#include <iostream>
#include <regex>
#include <string>

int main()
{
  const std::regex patron("(0+1+0+)");
  const std::string palabra1("00010");
  const std::string palabra2("abc00010def011110ghi");

  // ¿Coincide la palabra con el patrón?
  std::cout << std::boolalpha << std::regex_match(palabra1, patron) << std::endl;
  std::cout << std::boolalpha << std::regex_match(palabra2, patron) << std::endl;
  
  return 0;
}