Реализация функции split с получением всех разделителей

Всех приветствую. В одной из тем я спрашивал, как написать функцию split в lua. Теперь мне нужно написать такую функцию, которая разрезает строку по lua паттерну и в таблицу заносится разделитель. Вообще в дальнейшем мне надо будет разбить строку на строки по нескольким паттернам, которые есть в таблице (сначало по первому, потом получившиеся строки, кроме разделителя, по второму и т.д пока разбить строки не будет на что), а потом, применив некоторую функцию, которая будет в качестве параметра основной функции, к этим максимально разбитым строкам, не считая разделителя, собрать их в одну строку, которую основная функция и должна вернуть, при этом, естественно, разделители у этой строки должны быть на своём месте. Я знаю, что это скорее всего будет рекурсивная функция и, на мой взгляд, я смогу её сам написать, но помогите пожалуйста написать функцию, которая разбивает строки по определённому паттерну и возвращает таблицу, которая включает в себя разделители, т.е по сути у неё нечётная длинна. Если справо или с лево от разделителя пусто, то в таблицу, как это сделано и в питоне, должна вставляться пустая строка. К примеру для строки Маша Саша Люба Таня, с разделителем %s+, функция должна вернуть таблицу:

Маша

Саша

Люба

Таня

Как мы видим, последний разделитель у нас двойной пробел, а не одинарный, поэтому в таблицу и должны вставлятся не только части строки, но и разделители. Заранее всем огромное спасибо за помощь.