What is the best approach if for instance a question mark is expected in a String.
...[?]...
or
...\?...
Example:
The text bla?bla will match both with the pattern bla[?]bla and bla\?bla (bot not bla?bla obviously) but is there any reason to use one over the other?
There is no technical reason to prefer one over the other: They are equivalent expressions. The character class is only used to avoid entering a backslash, so IMHO the escaped version is “cleaner”
However the reason may be to avoid double-escaping the slash on input. In languages like java, the literal version of the escaped version would look like this:
It could be that wherever the regexes are coming from has a similar issue and it’s easier to read
[?]than\\?