What I'm looking for is some library or some code of classes that can be used to expand construction strings into variations and permutations. Something like the following (syntax is mine, may be different):
construction string: [Ff]oo [Bbß]ar|F(oo|oe)
output strings:
Foo Bar
foo Bar
Foo bar
foo bar
Foo ßar
foo ßar
Foo
Foe
While it wouldn't be too hard to build this myself, if it's around, why bother reinventing the wheel?