Здесь preg_quote используется для удаления определенных специальных символов, чтобы они интерпретировались как буквенные символы.
Вы также можете использовать диапазоны символов для выражения перечисленных символов:
$pattern = "/[^0-9!&',-.\\/a-z\n]/";
В этом случае не имеет значения, экранирован литеральный - в ,-. или нет. Поскольку ,-. интерпретируется как диапазон символов от , (0x2C) до . (0x2E), который уже содержит - (0x2D) между ними.
Затем вы можете удалить те символы, которые соответствуют preg_replace:
^ Это чувствительно к регистру, поэтому капитал T удаляется из строки. Чтобы позволить заглавные буквы, $string = preg_replace('/[^0-9!&\',\-.\/A-Za-z\n]/', '', $string)