Sub-expressões condicionais
  
   É possível fazer com que o processo de correspondência obedeça condicionalmente
   a uma sub-expressão ou escolha entre duas sub-expressões
   alternativas, dependendo do resultado de uma afirmação, ou
   se uma sub-expressão de captura anterior correspondeu ou não. As
   duas formas possíveis de sub-expressão condicional são
  
  
  
   Se a condição for satisfeita, a expressão-sim é usada; caso contrário
   a expressão-não (se presente) é usada. Se houver
   mais que duas alternativas na sub-expressão, ocorrerá um erro
   no momento da compilação.
  
  
   Existem dois tipos de condição. Se o texto entre parênteses
   consistir em uma sequência de dígitos, então a
   condição será satisfeita se a sub-expressão de captura desse
   número tiver correspondido anteriormente. Considere a seguinte expressão,
   que contém espaços em branco não significativos para torná-la
   mais legível (assumindo que a opção PCRE_EXTENDED
   está definida) e para dividi-la em três partes para facilidade de discussão:
  
  
  
   A primeira parte corresponde a um parêntese de abertura opcional e,
   se esse caractere estiver presente, define-o como a primeira substring
   capturada. A segunda parte corresponde a um ou mais caracteres
   que não são parênteses. A terceira parte é uma sub-expressão
   condicional que testa se o primeiro conjunto de parênteses
   corresponde ou não. Se sim, ou seja, se a string começou
   com um parêntese de abertura, a condição é true, e então
   a expressão-sim é executada e um parêntese de fechamento é
   necessário. Caso contrário, como a expressão-não não está presente, A
   sub-expressão não corresponde a nada. Em outras palavras, essa expressão
   corresponde a uma sequência de não-parênteses, opcionalmente entre
   parênteses.
  
  
   Se a condição for a string (R), ela será satisfeita se
   uma chamada recursiva à expressão ou sub-expressão tiver sido feita. No “nível
   superior”, a condição é falsa.
  
  
   Se a condição não for uma sequência de dígitos ou (R), deverá ser uma
   afirmação. Esta pode ser uma afirmação positiva ou negativa que olha para frente
   ou que olha para trás. Considere esta expressão, novamente contendo
   espaços em branco não significativos e com as duas alternativas na
   segunda linha:
  
  
  
   A condição é uma afirmação que olha para frente positiva que corresponde a
   uma sequência opcional de não-letras seguidas por uma letra. Em
   outras palavras, testa a presença de pelo menos uma
   letra na string. Se for encontrada uma letra, a string é
   comparada com a primeira alternativa; caso contrário, será
   comparada com o segunda. Esta expressão corresponde a strings em
   uma das duas formas dd-aaa-dd ou dd-dd-dd, onde aaa são
   letras e dd são dígitos.