diff --git a/buildconfig/CMake/FindPoco.cmake b/buildconfig/CMake/FindPoco.cmake
index 8b94035e77ebe06f90e980003effe27b769b5b0c..2cd3fa7a875412249138de93c51f2cf6183ea34e 100644
--- a/buildconfig/CMake/FindPoco.cmake
+++ b/buildconfig/CMake/FindPoco.cmake
@@ -50,17 +50,20 @@ if( POCO_INCLUDE_DIR )
   endif ()
   # regex quantifiers like {8} don't seem to work so we'll stick with + even though
   # it's not strictly true
-  set ( VERS_REGEX "^#define[ \t]+POCO_VERSION[ \t]+0x([0-9]+)$" )
+  set ( VERS_REGEX "^#define[ \t]+POCO_VERSION[ \t]+0x([0-9A-F]+)$" )
   file ( STRINGS ${VERSION_FILE} POCO_VERSION REGEX ${VERS_REGEX} )
   # pull out just the part after the 0x
   string( REGEX REPLACE ${VERS_REGEX} "\\1" POCO_VERSION ${POCO_VERSION} )
 
   # Pretty format
   string( SUBSTRING ${POCO_VERSION} 0 2 POCO_VERSION_MAJOR )
+  math(EXPR POCO_VERSION_MAJOR "0x${POCO_VERSION_MAJOR}" OUTPUT_FORMAT DECIMAL)
   string( REGEX REPLACE "^0\(.\)" "\\1" POCO_VERSION_MAJOR ${POCO_VERSION_MAJOR} )
   string( SUBSTRING ${POCO_VERSION} 2 2 POCO_VERSION_MINOR )
+  math(EXPR POCO_VERSION_MINOR "0x${POCO_VERSION_MINOR}" OUTPUT_FORMAT DECIMAL)
   string( REGEX REPLACE "^0\(.\)" "\\1" POCO_VERSION_MINOR ${POCO_VERSION_MINOR} )
   string( SUBSTRING ${POCO_VERSION} 4 2 POCO_VERSION_PATCH )
+  math(EXPR POCO_VERSION_PATCH "0x${POCO_VERSION_PATCH}" OUTPUT_FORMAT DECIMAL)
   string( REGEX REPLACE "^0\(.\)" "\\1" POCO_VERSION_PATCH ${POCO_VERSION_PATCH} )
   set ( POCO_VERSION "${POCO_VERSION_MAJOR}.${POCO_VERSION_MINOR}.${POCO_VERSION_PATCH}" )
 endif()