Если все, что вам нужно, это знать, что это от 1 до 20 символов, почему бы не использовать strlen()
?
$length = strlen($title);
if($length >= 1 and $length <=20)
echo "VALID";
else
echo "Invalid";
[РЕДАКТИРОВАТЬ]: проверка буквенно-цифровой или пунктуации:
И если вы также хотите проверить, содержит ли строка какие-либо непечатаемые символы, которые могут вызвать проблемы, просто используйте ctype_graph()
if(ctype_graph ($title))
echo "Only alphanumeric or punctuation";
else
echo "Invalid non-printable characters found";
[РЕДАКТИРОВАТЬ 2]:
Если вы также хотите, чтобы пробелы
были проверены, просто используйте это:
if(ctype_graph(str_replace(' ', '',$title))