/^[A-Za-z]+(-?[A-Za-z]+)?$/
это похоже на то, что вы хотите.
^ = соответствует стартовой позиции
^ [A-Za-z] + = начальная позиция сопровождается хотя бы одной или несколькими буквами.
-? = есть ноль или один дефис (используйте «*», если в строке может быть несколько дефисов).
[A-Za-z] + = дефис сопровождается одной или несколькими буквами
(-? [A-Za-Z] +)? = для случая, когда есть одна буква.
$ = соответствует конечной позиции в строке.