Regex documentation about escaping is inaccurate.
I believe that statement introduced in regex specification in the latest release (3.13) about backslash is a truth only in single case:
Backslash () characters in regular expressions are interpreted literally and do not escape anything or represent placeholders
https://cmake.org/cmake/help/v3.13/command/string.html#regex-specification
From my quick testing it seems the statement holds only inside square brackets. Tested on code from master branch.
# backslash escaping matches
string(REGEX MATCH "a\\+b" match "a+b")
message("match: ${match}") # a+b
# backslash 'taken literally' do not match
string(REGEX MATCH "a\\+b" match "a\\+b")
message("match: ${match}") # no match
# inside () escapes as well
string(REGEX MATCH "(a\\+b)" match "(a+b)")
message("match: ${match}") # a+b
# escaping () works without problems
string(REGEX MATCH "\\(a\\+b\\)" match "(a+b)")
message("match: ${match}") # (a+b)
# backslash needs escaping itself
string(REGEX MATCH "a\\\\*b" match "a\\\\\\\\\\\\\\b")
message("match: ${match}") # a\\\\\\\b
# otherwise escapes next character
string(REGEX MATCH "a\\*b" match "a*b")
message("match: ${match}") # a*b
# inside [] indeed does not escape
string(REGEX MATCH "[a\\+b]*" match "a+b\\ab+")
message("match: ${match}") # a+b\ab+
# escaping [ inside [] makes regex compile, but results are unexpected
# eg.: string sub-command REGEX, mode MATCH regex "[\[]*" matched an empty string.
# string(REGEX MATCH "[\\[]*" match "a[sd")
# message("match: ${match}")
# Other examples
string(REGEX MATCH "/*" match "///*\\aa")
message("match: ${match}") # ///
string(REGEX MATCH "[/*]*" match "///*\\aa")
message("match: ${match}") # ///*
string(REGEX MATCH "[/\\*]*" match "///*\\aa")
message("match: ${match}") # ///*\