Échappement des caractères ordinaires dans les regex en PHP

Le modificateur X fait en sorte que l'échappement d'un caractère ordinaire entraîne une erreur. Sans cet opérateur, les caractères ordinaires peuvent être échappés, ils représenteront toujours eux-mêmes (exception : les chiffres, ils deviendront des captures). Regardons un exemple :

php<?php
  preg_replace('#x\@x#X', '!', 'x@x'); // erreur, @ n'est pas un métacaractère
?>