Perante um caos de informações podemos determinar um padrão, como exemplo:

O que temos em comum nas palavras gato pato? Simples ambas possuem o trecho "ato" diferenciando a primeira letra, podendo ser "P" ou "G".

O que quero dizer com isso? Simples, com a expressão regular ou RegEx para os mais intimos, podemos determinar que seja encontrado uma ou mais palavra que contenha pato ou gato. Como?

[p|g]ato onde: os [] eu determino que possa ser encontrado um caracter, no caso p ou g (em que o | significa "ou") e possua a sequência "ato".

Esse é um exemplo simples, mas podemos criar padrões de expressão em que podemos encontrar ou validar documentos como CNPJ, CPF ou mesmo e-mails ou urls.

O que quero dizer é que programadores necessitam de conhecer sobre o assunto, pois um dia ou outro, você se depara com situações onde ao invés de fazer 50 linhas de código para encontrar parsear uma query de banco de dados ou descobrir consoantes em um texto e um simples padrão de regex salva a sua vida, bem como para os cientistas de plantão, conhecer mais sobre autômatos, que é um nível mais baixo do assunto.

Cada vez mais encontro profissionais que não dão a devida importância sobre o assunto, por ser complicado ou mesmo difícil de entender a primeiro momento, além de simplesmente copiar e colar várias expressões para fazer funcionar, e não procuram entender ou até implementar em situações loucas como esse.

Padrões devem ser enxergados. Mas poucos se propõem a solucionar esses padrões-problemas.