Tema anterior: Repeticiones no expansivasTema siguiente: Paréntesis de no marcación


Paréntesis

Los paréntesis tienen dos finalidades: agrupar elementos en una subexpresión y marcar lo que ha generado la coincidencia. Por ejemplo, la expresión "(ab)*" coincidiría con toda la cadena "ababab". Los algoritmos coincidentes regex_match y regex_search uno toman una instancia de match_results que notifica lo que ha provocado la coincidencia. Al abandonar estas funciones, match_results contiene información acerca de lo que coincide la expresión completa y de lo que coincidía cada subexpresión. En el ejemplo anterior, match_results[1] contendría un par de iteradores que indican el "ab" final de la cadena coincidente. Las subexpresiones pueden coincidir con cadenas nulas. Si una subexpresión no toma ninguna parte en una coincidencia (por ejemplo, si forma parte de una alternativa que no se toma), los dos iteradores que se devuelven para dicha subexpresión señalan al final de la cadena de entrada y el parámetro coincidente para esa subexpresión es falso. Las subexpresiones se indexan de izquierda a derecha empezando por 1. La subexpresión 0 es la expresión completa.