1function(escape_string_as_regex _str_out _str_in)
2  STRING(REGEX REPLACE "\\\\" "\\\\\\\\" FILETEST2 "${_str_in}")
3  STRING(REGEX REPLACE "([.$+*?|-])" "\\\\\\1" FILETEST2 "${FILETEST2}")
4  STRING(REGEX REPLACE "\\^" "\\\\^" FILETEST2 "${FILETEST2}")
5  STRING(REGEX REPLACE "\\(" "\\\\(" FILETEST2 "${FILETEST2}")
6  STRING(REGEX REPLACE "\\)" "\\\\)" FILETEST2 "${FILETEST2}")
7  STRING(REGEX REPLACE "\\[" "\\\\[" FILETEST2 "${FILETEST2}")
8  STRING(REGEX REPLACE "\\]" "\\\\]" FILETEST2 "${FILETEST2}")
9  SET(${_str_out} "${FILETEST2}" PARENT_SCOPE)
10endfunction()
11
12function(test_escape_string_as_regex)
13  SET(test1 "\\.^$-+*()[]?|")
14  escape_string_as_regex(test2 "${test1}")
15  SET(testRef "\\\\\\.\\^\\$\\-\\+\\*\\(\\)\\[\\]\\?\\|")
16  if(NOT test2 STREQUAL testRef)
17	message("Error in the escape_string_for_regex function : \n   ${test1} was escaped as ${test2}, should be ${testRef}")
18  endif(NOT test2 STREQUAL testRef)
19endfunction()