Prueba una expresión regular sobre tu texto, mira cada coincidencia y cada grupo y entiende el patrón pieza a pieza, directamente en tu navegador.
El Probador de expresiones regulares resalta en tu texto cada coincidencia de una expresión regular de JavaScript y lista los grupos capturados. Un desglose explica cada parte del patrón con palabras. Un modo de reemplazo muestra el resultado de una sustitución, y un modo de pruebas unitarias comprueba el patrón con líneas que deben y no deben coincidir, para saber que sigue funcionando cuando lo cambias.
Tu patrón y tu texto se procesan en el navegador y no se envían a ningún servidor: el sitio solo recibe un evento anónimo de «herramienta abierta», sin el contenido. Un resultado que envías a otra herramienta se queda 24 horas en este dispositivo, en «Actividad reciente». Un enlace de «Compartir» lleva el patrón y el texto dentro del propio enlace, así que compártelo solo con personas de confianza.
JavaScript, como en los navegadores y Node.js. La mayoría de patrones funcionan igual en Python, Java o PHP, pero revisa los flags y el soporte de lookbehind en tu lenguaje de destino.
Escribes las líneas que deben coincidir y las que no. Cada vez que cambias el patrón, ves al momento si sigue aceptando y rechazando lo que debe.
Tardaba demasiado: normalmente, cuantificadores anidados como (a+)+ hacen que el motor pruebe una cantidad enorme de combinaciones. La herramienta la detiene en segundo plano; reescribe esa parte de forma más concreta.