perché usi i modificatori \d e \D in sostanza gli dici di cercare prima tutti i caratteri numerici e poi quelli non numerici; a mio avviso fai prima a usare un bel punto (.) che sta ad indicare qualsiasi carattere:

Codice PHP:
$string="Ciao \"Caio\"";
echo 
preg_replace("/(\".*\")/""<span style='color:#990000'>\${1}</span>"$string);