Ну так сразу не придумаешь конечно, как это решить) Я бы тогда присмотрелся к функции explode.
У Вас по сути символы - это разделители. Сначала разделите строку по одному символу, а потом оставшиеся куски со вторым символом - разделите по другому символу.
Например: 12!4!321?516
После разделения по символу ! получится следующее:
12
4
321?516
Потом третий элемент опять надо разделить по символу ?, и получится ещё два элемента:
321
516
выглядит как решение, пойду обдумаю. Благодарю
Avramenko
Сергей
Нуржан
Anastasia
Dmitry
🤫
Николай
Олег