i caratteri di escape servono, perchè altrimenti matcha solo le lettere dalla a alla z, escludendo le accentate (penso l'unico carattere che matcha sia il _)

in teoria il metodo più rapido ed indolore è appunto

Codice PHP:
$pattern "#[\\D]#"