Yowzers! That might work but most of the characters you're searching for are special characters - they have a special meaning to the regular expression function itself. They need to be "escaped" with a backslash ( \ ) so it knows that "*" means "*" and not "match the previous character zero or more times"
But I would also shrink that down into a class - a set of characters you're looking for. If anything in that set is matched, the function returns true. And since it's inside a set, they don't need to be escaped. Try this:
if (eregi("[*/:?\\|<>]", $account)) print "MATCH!";
Notice I started with a list of the characters you wanted to match, and put them in brackets, like this "[*/:?\|<>]".