Perfecto, me parecio una buena idea.
Finalmente el código para reemplazar los ? quedó:
Código PHP:
$s='INSERT INTO tabla (col1, col2, col3, col4, col5) VALUES (?, "?", " ? ", "?", ? )';
echo preg_replace(array('/\s{2,}/', '/([^"\s]\s*)(\?)(\s*[^"\s])/'), array(' ', '$1reemplazo$3'), $s);
Para extraerlos con preg_match_all es similar solo que primero se le quitarían los espacios dobles, triples, etc con preg_replace...
Nuevamente muchas gracias por la ayuda.