Gere todas as permutações de texto de um padrão de expressão regular em c #

Então, eu tenho um padrão de expressão regular e quero gerar todas as permutações de texto que seriam permitidas desse padrão.

Exemplo:

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

Isso retornaria a lista de strings abaixo:

Meu nome é Steve

Meu nome verdadeiro é Steve

Meu nome biológico é Steve

Atualizar: Obviamente, um regex tem um número infinito de correspondências, então eu só quero gerar os literais de string opcionais como no (?: Biological | real)? do meu exemplo acima. Algo como (.) * Tem muitos jogos, então eu não vou gerá-los fora disso.

questionAnswers(3)

yourAnswerToTheQuestion