1. Частично не соглашусь, от кавычек зависит что нужно экранировать. В какой то статье писалось что неправильное экранирование идет во вред регуряке по 3 причинам.
a) регурка делает лишние телодвижение что бы определить что экранировать ничего не нужно и что это не метасимвол.
b) в будущем \@ может стать метасимволом, и тогда регулярка после обновления вылетит с ошибкой.
с) регулярка стает менее читабельной, из за лишнего-ненужного символа, полюс порождает мысль что это неизвестный тебе метосимвол.(я вот задумался и просмотрел опять мануал, в поисках что за метопоследовательность)
2. Тут согласен. Но для новичков я бы посоветовал использовать \S, так как [^...] дополнительные телодвижения для механизма PCRE, в сторону производительности и внутрених оптимизаций.
3. Тут вообще не согласен. В мануале имелось введу про то что если в искомом тексте нету перевода строки, то ^ и $ не меняют свое повидение, или если в искомой строке есть переводы строк но нету ^ и $, тоже не имеет смысла. Буду очень рад если ты примером докажешь обратное.
4. С утфом в регексах от версии к версии все как то не стабильно, но использование u подключает нехилую таблицу юникода, да и не все еще перешли на utf-8
З.Ы. написал ответ просто для информационности новичков
пару вопросов
1) зачем слешить @ если регекс в одиночных кавычках?
2) зачем сложная [^\s] если есть \S?
3) зачем модификатор m если нету ^ и $?
4) зачем модификатор u если в регексе нету намека на использование расширенной таблицы символов?
З.ы. я не подправляю, просто чувствую что чего то не понимаю. Возможно это какието оптимизации?
Пишу простенький поиск, так вот есть такой момент - есть предложение, и есть запрос, нужно найти вхождения запроса, вначале каждого слова предложения, например:
Продается гараж по улице беговая, недорого.
Запрос - бег.
вместо конструкции \1 подставляться значение первой подгрупы(img|poster), тоесть или img или poster.
если первый тэг был img то значит мы ожидаем закрывающий тега img