para indicar a opcao OU:// Exemplo: checar se determinada string possui "rato" ou "gato"if (preg_match('/rato|gato/', $string)) { // A string possui "rato" ou gato, por exemplo: "rato", "gato", "ratos", "gatos", "barato", "rato e gato"} else { // A string nao possui "rato" nem "gato", por exemplo: "Rato", "Gato", "cavalo"}// Exemplo: checar se determinada string eh exatamente "rato" ou exatamente "gato"if (preg_match('/^rato$|^gato$/', $string)) { // A string eh "rato" ou gato, por exemplo: "rato", "gato"} else { // A string nao eh "rato" nem "gato", por exemplo: "Rato", "Gato", "cavalo", "ratos"}Grupo de caracteresPara especificar um grupo de caracteres utilizamos os delimitadores abre/fecha colchetes. Dentro dos colchetes, podemos colocar os grupos de caracteres aceitos naquela posicao:// Exemplo: checar se a string comeca com "r" ou "g", segue com "at" e termina com "a" ou "o"if (preg_match('/^[rg]at[ao]$/', $string)) { // Por exemplo: "rato", "gato", "rata", "gata"} else { // Por exemplo: "Rato", "Gato", "cavalo", "ratos", "rgatao"}Note que na posicao onde estao os grupos de caracteres so e aceito um unico caractere. No primeiro caso, ou e "r" ou e "g", mas nao pode ser "rg". No segundo caso, ou e "a" ou e "o", mas nao pode ser "ao" nem "oa".Segue algumas possibilidades a serem usadas dentro dos colchetes: .: qualquer caractere, exceto quebra de linha 0-9: qualquer digito \d: qualquer digito a-z: qualquer letra minuscula A-Z: qualquer letra maiuscula a-c: qualquer letra minuscula entre "a" e "c" [:lower:]: qualquer letra minuscula [:upper:]: qualquer letra maiuscula [:alpha:]: qualquer letra [:alnum:]: qualquer letra ou digito [:digit:]: qualquer digito \w: qualquer caractere para montar palavras \s: qualquer caractere de espaco ou quebra de linhaPara conhecer todas possibilidades, consulte a lista de classes de caracteres e lista de caracteres genericos.Note que existem varias formas para expressar o mesmo grupo de caracteres. Eles podem ser usados conforme o gosto. Alem disso, podem ser usados em conjunto:// Exemplo: checar se a string comeca com "x", seguido por uma letra minuscula, depois um numero, e termina com uma letra ou numero ou @if (preg_match('/^[x][[:lower:]][\d][a-z0-9@]$/', $string)) { // Por exemplo: "xa0a", "xb11", "xb1@"}// Mesmo exemplo, mas usando apenas sequencias de escapeif (preg_match('/^x\w\d[\w\d@]$/', $string)) { // Por exemplo: "xa0a", "xb11", "xb1@"}Uma observacao e que as sequencias com escape (barra invertida) podem ser usadas fora dos colchetes.Note que o sinal de menos tem significado especial dentro de colchetes, portanto precisa ser escapado caso o caractere "-" seja aceito no grupo de caracteres.Para indicar um grupo de caracteres negativo, ou seja, qualquer caractere exceto os especificados, utiliza-se o sinal "^" apos a abertura de colchetes:// Exemplo: a string precisa comecar com "a" ou "b", depois seguir com qualquer caractere, exceto o "x" e "y"if (preg_match('/^[ab][^xy]$/', $string)) { // Por exemplo: "a1", "bd"} else { // Por exemplo: "ax", "ay", "bx", "by", "k1"}Grupo de expressoes (sub-expressoes)Para especificar um grupo de expressoes usamos os delimitadores abre/fecha parenteses. Um grupo de expressoes e usado para capturar partes de uma string.// Capturar o prefixo de uma placa de carro (3 letras) e o sufixo (4 numeros)$string = 'ABC-1234';if (preg_match('/^([A-Z][A-Z][A-Z])-([0-9][0-9][0-9][0-9])$/', $string, $partes)) { echo $partes[0]; // ABC-1234 echo $partes[1]; //