You could define different syntax-tables and than call functions
if type-A
(with-syntax-table type-A ...
That looks like a promising approach, but I never worked with
syntax-tables so I ask myself:
Is it possible to redefine characters "^", "$" and "*" in a syntax-table
in such a way that the same hardcoded regexp, e.g.
,------------------
| "^[*] [*]Fat[*]$"
`------------------
matches "* *Fat*" when called (with-syntax-table type-A ...), but
matches e.g. "// # *Fat*//" when called (with-syntax-table type-B ...)?