Devo inserire questa espressione regolare in PHP ma mi da errore:

La stessa espressione regolare la utilizzo con il "match" di javascript ed in quel caso funziona.
Sapete dirmi dov'è l'errore?

preg_match('/^[a-zA-Z0-9 !"#%\'()*+,-./:;<=>?@\\^_\'{|}~àèìòù]+$/i',$str)

praticamente voglio prendere in considerazione lettere minuscole, maiuscole, numeri, quasi la totalità dei caratteri ASCII e le accentate per la lingua italiana.