你的正则表达式使用PCRE语法,所以你必须使用preg_match()而不是eregi().
请尝试使用此代码:
else if (!preg_match("/^([0-9a-z_\[\]* -])+$/i", $subuser)) { $form->setError($field, "* Username not alphanumeric"); }