preg_match error Неизвестный модификатор '{'

Что случилось с этим?

if((preg_match('[a-zA-Z]{1,7}+',$_POST['naam'])) and (preg_match('[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!',$_POST['password']))) 

в первом регулярном выражении я хочу строку длиной 1-7, содержащую только буквенные буквы.

Во втором регулярном выражении я хочу строку, содержащую буквы и цифры с помощью! в конце.

У вас отсутствует разделитель вокруг ваших регулярных выражений:

 if((preg_match('/[a-zA-Z]{1,7}+/',$_POST['naam'])) and (preg_match('/[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!/',$_POST['password']))) 

{1,7} – это означает от 1 до 7

{1,7}+ – это неудобно, так как + означает, что предыдущий символ должен быть хотя бы один раз. обычно используется как [az]+ <- требует az

{1,7}+ неверно.