RegExp semver fails to compile

Any idea why the following RegExp matching fails?

tee regexFailure.cmake <<EOL
string(REGEX MATCH "^([0-9][0-9]*)\\.([0-9][0-9]*)\\.([0-9][0-9]*)(-(([0-9][0-9]|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(\\.([0-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(\\+([0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*))?$" SEMVER "99.0.14-test.99")

include(CMakePrintHelpers)
cmake_print_variables(SEMVER)
EOL
cmake -P regexFailure.cmake

My issue on that was recently closed by Brad.

CMake only supports 9 groups in regexes, so there are just too many parentheses in this expression.