get padrões internos recursivamente usando regex c #

Eu sei que existem várias perguntas sobre a recursão de regex no .net. Posso escrever expressões regex um tanto complexas, mas essa recursão está além de mim, simplesmente não sou capaz de escrevê-l

Essas são as perguntas mais próximas do que eu quer

primeira pergunta segunda questã.

mas corresponde a toda a cadeia, eu quero as correspondências em uma coleção de preferência a correspondência mais interna primeiro ou em alguma ordem. Também combina com um caractere de abertura e um caractere de fechamento. O meu é 2 caracteres para abrir e fechar, [! e!]

minha string de entrada será algo como ist

[!a='test' b='[!a='innertest' b='innervalue'!]'!]

Preciso encontrar a seção mais inertesta,[!a='innertest' b='innervalue'!], primeiro e depois avalie-o através de uma das minhas árvores de expressão. então avalie o pai que o conté

Alguém pode ajudar com isso

questionAnswers(2)

yourAnswerToTheQuestion