Делать «А, а не В» в одном регулярном выражении сложно. Обычно лучше (яснее, проще) вместо этого сделать это в двух частях. Если это не вариант, это можно сделать. Вы на правильном пути с негативным прогнозом, но чередование убивает вас.
/^(?!admin$)[-a-zA-Z0-9]+$/
В расширенном синтаксисе Perl это:
/
^ # beginning of line anchor
(?! # start negative lookahead assertion
admin # the literal string 'admin'
$ # end of line anchor
) # end negative lookahead assertion
[-a-zA-Z0-9]+ # one or more of a-z, A-Z, 0-9, or '-'
$ # end of string anchor
/x