O que me ajudou a entender expressões regulares foi estudar sobre autômatos finitos. Tem um tipo de autômatos finitos que pode reconhecer linguagens regulares - "reconhecer" significando determinar se uma string pertence àquela linguagem ou não - e tu pode construir autômatos desse tipo específicos pra reconhecer linguagens regulares específicas (por exemplo, reconhecer uma data formatada como YYYY-MM-dd
, ou um identificador (e.g. nome de variável ou função) em uma linguagem de programação; expressões regulares, daí, são uma linguagem que se "compila" na construção desses tais autômatos. Sei lá, tem mais coisa pra explicar sobre isso, mas quando entendi isso, expressões regulares ficaram de boas pra entender.
O problema pra mim é que "regex" em linguagens de programação reais são mais avançadas que expressões regulares teóricas estudadas em ciência da computação, lol, e tem pelo menos dois tipos de sintaxe diferentes... ainda bem que hoje em dia posso usar o ChatGPT pra criar a expressão regular, sabendo ler elas dá pra conferir de boas, mas escrevê-las realmente é um saco às vezes.