Следующее - это все, что вам нужно:
^[a-zA-Z' -]+$
Важно то, что "-" - последний символ в группе, в противном случае он будет интерпретирован как диапазон (если вы не избежали егос "\")
То, как вы фактически вводите это выражение в виде строки на целевом языке, зависит от языка.Для C # я обычно использую строки "@", например:
var regex = new Regex(@"^[a-zA-Z' -]+$");