Âncoras e o ponto

Há metacaracteres e metasequências que casam com o início e o fim de uma string. Eles são chamados de âncoras, e casam com posições ao invés de caracteres.

O metacaractere ^ casa com o início da string e o metacaractere $ casa com o final da string. Porém, quando o modo multilinha está ativo, eles casam com o início e o fim da linha. Com o modo multilinha inativo, a expressão regular ^ab casa com uma string que comece com ab e a expressão regular ab$ casa com uma string que termine com ab. Com o modo multilinha ativo, essas expressões casam com linhas que comecem e terminem com ab, respectivamente.

E se você quiser casar com o ^ ou o $ de forma literal? Como isso pode ser feito, já que eles são metacaracteres? Nesse caso, é preciso usar a \, que é um caractere de escape que é usado para fazer com que metacaracteres percam o significado especial deles e sejam interpretados como caracteres literais. Assim, a expressão regular \^ casa com um acento circunflexo e a expressão regular \$ 20, 00 casa com a string $ 20, 00.

Há também as metasequências \A e \z, que são equivalentes aos metacaracteres ^ e $, respectivamente, mas com uma diferença: elas sempre casam com o início e o fim da string, mesmo no modo multilinha. Há também a metasequência \Z, que é como a \z, mas com a diferença que também pode casar com uma quebra de linha que finalize a string, se houver alguma.

O metacaractere . casa com qualquer caractere, exceto quebras de linha. Exemplo: .u (casa com fu, 2u, !u, dentre outros).