O que realmente me ajudou a parar de ser um zumbi de copy-paste com regex foi entender que cada padrão está apenas respondendo uma pergunta simples: "quais caracteres eu quero encontrar e quantos deles?" Quando você entende isso, a sintaxe para de parecer pontuação aleatória e começa a fazer sentido.
Divida em pedaços em vez de tentar entender um padrão inteiro de uma vez. Aprenda as classes de caracteres primeiro (o que `\d` ou `[a-z]` significam), depois os quantificadores (o `+`, `*`, `?`), depois as âncoras. Dedique tempo real a cada um com uma ferramenta de teste para você ver o que encontra e o que não encontra. O que outros mencionaram sobre regex101 e sites parecidos é sólido - aquele feedback imediato é muito mais valioso do que qualquer tutorial porque você não está mais adivinhando.
Mas aqui está a armadilha que ninguém avisa: regex pode ficar absurdamente complicado e as pessoas escrevem esses monstros que tecnicamente funcionam mas ninguém (nem o autor original seis meses depois) consegue ler. Não caia na armadilha de tentar fazer um mega-regex fazer tudo. Às vezes é mais claro e mais fácil manter múltiplos padrões menores ou até só usar funções de string. Já vi scripts onde alguém escreveu um regex de 200 caracteres para validar algo quando alguns testes simples teria sido bem mais fácil de entender e debugar. Aprenda regex direito para você reconhecer quando na verdade é a ferramenta certa em vez de só usar porque você sabe agora.