Имхо, если уж писать свой велосипед, достаточно будет:
1. Выберите один и тот же формат, фигурные {} значит везде фигурные, квадратные [] - значит везде квадратные.
2. Вхождения ищите простой регуляркой.
3. Найденные вхождения
токенизируйте и выполняйте свою логику.
Но лучше возьмите готовое решение, они есть. Вот быстрый поиск на packagist.org выдал:
https://packagist.org/packages/aymanrb/php-unstruc...
https://packagist.org/packages/zualex/parsertext
и еще десятки либ.