Tópico anterior: Repetições "Non-greedy"

Próximo tópico: Parêntese "Non-Marking"

Parêntese

Os parênteses têm duas finalidades, agrupar itens em uma subexpressão e marcar o que gerou a correspondência. Por exemplo, a expressão "(ab)*" corresponderia a todas as sequências de caracteres "ababab". Cada um dos algoritmos correspondentes regex_match e regex_search, obtém uma instância de match_results, que informa o que causou a correspondência, na saída dessas funções, o match_results contém informações tanto sobre ao quê a expressão toda correspondeu quanto sobre ao quê cada subexpressão correspondeu. No exemplo acima, match_results[1] conteria um par de iteradores indicando o "ab" final da sequência de caracteres correspondente. É permitido a subexpressões a correspondência com sequências de caracteres nulas. Se uma subexpressão não fizer parte de uma correspondência, por exemplo, se fizer parte de uma alternativa que não seja utilizada, os iteradores retornados para aquela subexpressão apontarão para o final da sequência de caracteres de entrada e os parâmetros correspondentes apontarão que aquela subexpressão é falsa. As subexpressões são indexadas da esquerda para a direita, começando em 1, a subexpressão 0 é a expressão toda.