Плюсиком не иначе
если нужно заменить 'vas' в строке 'vasiliy vasilievich' регулярка ~(^|[ ])vas~
словами "взять vas перед которыми начало или пробел"
дальше либо preg_match_all() чтобы найти все, либо preg_replace() которая и так пройдется по всем.
другой вопрос - что метасимволов подряд сколько-то и ты хочешь их все в разные группы, тогда такое ~([0-9]+;)+~
но это будет как бы выборка нескольких групп идущих подряд, а не всех повторений в строке
мне кажется в твоем случае у тебя регулярка не совсем правильная.
можешь потренироваться на regex101 сайте, там сразу видно результат