Бывает, что какой-то возможностью либо настолько редко пользуешься, либо она настолько неудобна, что про нее забываешь напрочь.
Сегодня меня заново познакомили (hsw++) с модификатором регулярных выражений /m.
В дизайне регулярных выражений Perl 5 есть аж пять метасимволов, совпадающие с границами строк (физических или логических):
^ $ \A \Z \z
И на все это наслаивается модификатор /m, изменяющий действие первых двух из списка. И, до кучи, пара символов для переноса строк (\n и \R). Полное безобразие. Иными словами, отказ от /m в Perl 6 — очень правильное решение.
Я погрепал свои старые файлы, и обнаружил, что этот модификатор, даже когда и используется, ставился или по инерции, или, в совсем старом коде, из-за трепетного отношения к магическим в то время регулярным выражениям.
Для помнящих "Perl Best Practices" этот модификатор не такой уж и забытый - автор книги рекомендует использовать в каждом регэкспе /xms, а начало и конец строки обозначать символами \A и \z, забив на остальные.