como permitir apóstrofos em expressões regulares em php [closed]

Eu quero verificar string, que deve conter apenas letras latinas, traços e apóstrofes. o comprimento deve ser 2-50. tudo funciona, mas se uma string contém apóstrofo, a função retorna false.

private function validName($name)
{
    if(!preg_match("/^[a-zA-Z\'\-]{2,50}$/", $name))
        return false;
    return true;
}

como incluir apóstrofo no meu regex? Eu também tentei estes

preg_match("/^[a-zA-Z'-]{2,50}$/", $name)
preg_match("/^[a-zA-Z\'-]{2,50}$/", $name)
preg_match("/^[a-zA-Z'\-]{2,50}$/", $name)

mas retorna falso de qualquer maneira

ATUALIZAR:

Antes de executar este método, eu filtro minha string com$name = htmlentities($name, ENT_QUOTES, "UTF-8");

questionAnswers(1)

yourAnswerToTheQuestion