В твоем решении Regex отработает N раз в моем всего 1. Теперь представь себе если регулярка возвращает овер 100500 строк
, сколько будет отрабатывать твой while?
Для решения поставленной задачи оба варианта приемлемы при условии что количество совпадений не стремится к бесконечности.