Ускорена работа кода. Уменьшено потребление памяти. Для однобайтовых кодировок

Только для однобайтовых кодировок str_split с utf8 ведет себя не адекватно : http://www.php.net/manual/en/function.str-split.php#107658
Время обработки после 100 итераций к файлу data/voina_mir_cp1251.txt
Старый код: через preg_match
start mem=131884 bytes
end mem=179345316 bytes
179213432 bytes
time=698 sec

Обновленный код: str_split
start mem=131776 bytes
end mem=2934280 bytes
2802572 bytes
time=407 sec