use Regex qw(literal union concat show); # {a|b}cd{e|f|g}h show( concat( concat( union(literal("a"), literal("b")), literal("cd"), ), concat( union(literal("e"), literal("f"), literal("g")), literal("h"), ), ), ); __END__ "acdeh" "bcdeh" "acdfh" "acdgh" "bcdfh" "bcdgh"