Generar todas las permutaciones de texto de un patrón de expresiones regulares en C #

Así que tengo un patrón de expresiones regulares y quiero generar todas las permutaciones de texto que se permitirían a partir de ese patrón.

Ejemplo:

var pattern = "^My (?:biological|real)? Name is Steve$";
var permutations = getStringPermutations(pattern);

Esto devolvería la siguiente lista de cadenas:

Mi nombre es Steve

Mi verdadero nombre es Steve

Mi nombre biológico es Steve

Actualizar: Obviamente, una expresión regular tiene un número infinito de coincidencias, así que solo quiero generar literales de cadena opcionales como en el (?: Biologico | real)? de mi ejemplo anterior. Algo como (.) * Tiene demasiadas coincidencias, así que no las generaré con eso.

Respuestas a la pregunta(3)

Su respuesta a la pregunta