La cosa più importante che mi ha aiutato a smettere di essere uno zombie copia-incolla con regex è stata capire che ogni pattern sta semplicemente rispondendo a una domanda semplice: "quali caratteri voglio trovare, e quanti?" Una volta che lo capisci, la sintassi smette di sembrare punteggiatura casuale e inizia ad avere senso.
Scomponilo in pezzi invece di provare a capire un pattern intero tutto in una volta. Impara prima le classi di caratteri (cosa significano `\d` o `[a-z]`), poi i quantificatori (`+`, `*`, `?`), poi gli ancoraggi. Dedica tempo reale a ognuno con uno strumento di test così puoi vedere cosa corrisponde e cosa no. Le cose che altri hanno menzionato su regex101 e siti simili sono solide - quel feedback immediato è molto più prezioso di qualsiasi tutorial perché non stai più indovinando.
Ma c'è una trappola di cui nessuno avverte: regex può diventare incredibilmente complicato e la gente scrive questi mostri che tecnicamente funzionano ma nessuno (incluso l'autore originale sei mesi dopo) riesce a leggerli. Non cadere nella trappola di cercare di fare un mega-regex che faccia tutto. A volte è più chiaro e mantenibile fare più pattern più piccoli o semplicemente usare funzioni per stringhe. Ho visto script dove qualcuno ha scritto una regex di 200 caratteri per validare qualcosa quando alcuni semplici controlli sarebbero stati molto più facili da capire e debuggare. Impara regex correttamente così riconosci quando è davvero lo strumento giusto invece di raggiungerlo solo perché adesso lo conosci.