if(preg_match("/^[А-ЯЁ][а-яё\-]{29}$/", $a))
Если передать $a="Ц---", то это будет true
Нужно проверить имя, которое не должно превышать 30 символов и максимум пары -
if(preg_match("/^[А-ЯЁ][\-][а-яё]{28}$/", $a))
Как сделать что-бы всё выражение проверялось на максимальное колличество символов, а не отдельные его части.