preg_match() とバックスラッシュで奇妙な問題に遭遇しました。ユーザー名に不正な文字がないかチェックしようとしています。ほとんどすべてのもので動作しますが、'BobDobbs\' のようなユーザー名が通過しているようです。
strpos() を使用して問題を簡単に回避できましたが、構文の何が問題なのかまだわかりません。PHP 5.3.10 を実行しています。
$displayname = 'BobDobbs\\\\';
if(preg_match("/[^A-z0-9_.-]/", $displayname)) {
$errors[] = 'Name contains illegal characters';
}