get patrones internos de forma recursiva utilizando regex c #

Sé que hay varias preguntas sobre la recursividad de expresiones regulares en .net. Puedo escribir expresiones de expresiones regulares algo complejas, pero esta recursión está más allá de mí, simplemente no puedo escribirla.

Estas son las preguntas más cercanas a lo que quiero.

primera pregunta segunda pregunt.

pero coincide con la cadena completa, quiero las coincidencias en una colección, preferiblemente la coincidencia más interna primero o en algún orden. También coincide con un personaje de apertura y un personaje de cierre. El mío es de 2 caracteres para abrir y cerrar, [! y!]

my cadena de entrada será algo como esto.

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

Necesito encontrar la sección innertest,[!a='innertest' b='innervalue'!], primero y luego evaluarlo a través de uno de mis árboles de expresión. luego evalúe el padre que lo contiene.

¿Alguien puede ayudarme con esto

Respuestas a la pregunta(2)

Su respuesta a la pregunta