<?php
$allowed_symbols = '[a-z0-9:;,!\'\s*.?()"-]';
echo (int)!preg_match("/$allowed_symbols/im", '@3'); //0 проверка отсуствия разрешенных символов
echo (int)!preg_match("/^$allowed_symbols+$/i", "aaa\nb@bb\nccc"); //1 присуствуют недопустимые символы во всем тексте
echo (int)!preg_match("/^$allowed_symbols+$/i", "a@aa\nbbb\nccc"); //1 присуствуют недопустимые символы во всем тексте
echo (int)!preg_match("/^$allowed_symbols+$/im", "aaa\nb@bb\nccc"); //0 есть строка полностью из допустимых символов (aaa)
echo (int)!preg_match("/^$allowed_symbols+$/im", "a@aa\nbbb\nccc"); //0 есть строка полностью из допустимых символов (bbb)
echo (int)!preg_match_all("/^$allowed_symbols+$/i", "aaa\nb@bb\nccc", $match); //1 во всем тексте есть недопусимые символы
echo (int)!preg_match_all("/^$allowed_symbols+$/im", "aaa\nb@bb\nccc", $match); //0 есть строки полностью из допустимых символов (aaa,ccc)
echo preg_replace("/^$allowed_symbols+$/i", '<$0>' , "aaa\nb@bb\nccc", 1); //покажет что находит 2 пункт (1)
echo preg_replace("/^$allowed_symbols+$/im", '<$0>' , "aaa\nb@bb\nccc", 1); //покажет что находит 4 пункт (0)
echo '---лучше так проверять присуствие недопустимых символов--';
echo (int)preg_match('/[^a-z0-9:;,!\'\s*.?()"-]/i', "aaa\nb@bb\nccc"); //1
echo (int)preg_match('/[^a-z0-9:;,!\'\s*.?()"-]/i', "aaa\nbbb\nccc"); //0