De verdad asustan la ER cuando las ves por primera vez, pero con paciencia y mucha mas paciencia se puede.....
A ver...
Código:
\[
indica que la exp. tiene un corchete, pero como veras debe ser "escapeado" con una barra invertida para que no se confunda y lo tome con inicio de una clase de caracteres (mira en el manual que son las clases de caracteres)
\]
lo mismo que arriba, para que no se confunda con un cierre de clase de caracteres
()
lo que esta entre parentesis indica un subpatron, entonces tu array $salida va a tener en su clave 0 ($salida[0]) todo lo que encuentre la ER, y ademas en sus otras claves lo que "cace" la subexpresion regular que esta dentro de los "()"
.
el punto es algo asi como "cualquier cosa" excepto un caracter de nueva linea (\n).
*
el asterisco es un cuantificador de 0 o mas caracteres...
entonces
.*
quiere decir que busque cualquier caracter que se repita 0 o mas veces.
espero que esta explicacion no te haya confunfido mas. jejeje
saludos!