Una expresión regular describe un patrón, no una cadena fija. Encuentra todas las fechas de un texto, todos los números con unidad, todas las líneas que acaban en dos puntos, y lo hace casi igual en cualquier lenguaje que conozca expresiones regulares.
Esta herramienta ejecuta el patrón sobre un texto de ejemplo y muestra qué se está capturando de verdad. Es la vía más rápida para entender un patrón, propio o encontrado por ahí.
Las banderas y qué cambian
Sin la g la búsqueda encuentra solo la primera coincidencia; con ella, todas. La bandera i hace que no distinga mayúsculas de minúsculas, la m hace que el principio y el final se apliquen a cada línea en lugar de a todo el texto, y la s permite que el punto capture también los saltos de línea.
La bandera u activa la interpretación Unicode y hace falta en cuanto se usan propiedades como \p{L} para «cualquier letra»: sin ella, \p{L} es sencillamente un error de sintaxis.
Grupos y referencias
Los paréntesis agrupan una parte del patrón y recuerdan lo que ha capturado. Al sustituir, esas partes están disponibles como $1, $2 y así sucesivamente: con tres gestos una fecha española se convierte en una fecha ISO.
Quien tenga muchos grupos hará bien en nombrarlos: (?<ano>\d{4}) permite acceder con $<ano> y sigue siendo legible cuando cambia el orden. Los paréntesis que solo deben agrupar sin recordar se escriben (?:…).