Originariamente inviato da wartpro
PS: perchè ESCAPI il simbolo del dollaro due volte?
perche' nelle stringhe delimitate dai double quote "" il parser di php interpreta alcuni caratteri speciali ed espande le variabili.
come ben sai, le variabili in php sono precedute dal dollaro seguito dal nome della variabile
quindi in una stringa tipo "ciao $mondo" il parser cerchera' di interpretare $mondo come variabile
per farlo interpretare come stringa bisogna escappare il dollaro: "ciao \$mondo"

andando avanti, in una regex definita tra le double quotes tipo
"/ciao \$mondo/"
l'escape del \$ verra' gia' tolto dal parser prima di andare alla pcre, quindi alla pcre arrivera' il $ nudo, che lo interpretera' a modo suo, cioe' come meta-carattere di fine stringa
quindi bisogna escapparlo una seconda volta, "/ciao \\$mondo/", ed in questo modo sia il php che il pcre lo interpreteranno come carattere dollaro senza altri significati.

in alternativa basta definire la regex con apici singoli:
'/ciao \$mondo/'