Ci ho provato ma niente, non riesco ad andare d'accordo con locale e roba simile.

locales correttamente installate nel sistema:

codice:
teoss@nowhere:/var/www/prove$ locale -a
C
en_US.utf8
italian
it_IT
it_IT@euro
it_IT.iso88591
it_IT.iso885915@euro
it_IT.utf8
POSIX
codice PHP:

Codice PHP:
<?php

$string 
"// perché &&";

echo 
"locale: " setlocale(LC_ALL'it_IT') . "\n";
echo 
$string"\n";
echo 
preg_replace("/\\W/"""$string), "\n";

?>
output:

codice:
teoss@nowhere:/var/www/prove$ php alfanum.php 
locale: it_IT
// perché &&
perch
non riesco a far "entrare" le accentate negli word characters \w