То, что вы делаете, называется преждевременной оптимизацией. Производительность приятно иметь, но вы также должны сохранять код простой и читабельным .
.+$
означает «читать все до конца» - очевидно, зачем это усложнять? Позже, если ваша программа работает медленно, вы профилируете ее и пытаетесь выяснить, почему (типичными узкими местами являются запросы данных и сеть - но ничего не предполагайте).
Это хороший пример того, почему бы не оптимизировать слишком рано; имея благие намерения, вы усложнили свой код и допустили ошибки: [^$]+$
не имеет значения, которое вы имели, хотя оно имело.