Build: Fix incorrect regexes w/ if(...MATCHES...)

"arm*" as a regex means 'ar' followed by zero or more 'm' characters,
which matches 'parisc' and 'sparc64' as well.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e057066..3be62d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,14 +62,14 @@
     set(CMAKE_SYSTEM_PROCESSOR ${CPU_TYPE})
   endif()
 elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR
-  CMAKE_SYSTEM_PROCESSOR_LC MATCHES "arm*")
+  CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm")
   if(BITS EQUAL 64)
     set(CPU_TYPE arm64)
   else()
     set(CPU_TYPE arm)
   endif()
-elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "ppc*" OR
-  CMAKE_SYSTEM_PROCESSOR_LC MATCHES "powerpc*")
+elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^ppc" OR
+  CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^powerpc")
   set(CPU_TYPE powerpc)
 else()
   set(CPU_TYPE ${CMAKE_SYSTEM_PROCESSOR_LC})
diff --git a/simd/CMakeLists.txt b/simd/CMakeLists.txt
index f3c24ef..7f380dc 100644
--- a/simd/CMakeLists.txt
+++ b/simd/CMakeLists.txt
@@ -52,9 +52,9 @@
 enable_language(ASM_NASM)
 message(STATUS "CMAKE_ASM_NASM_COMPILER = ${CMAKE_ASM_NASM_COMPILER}")
 
-if(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "macho*")
+if(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "^macho")
   set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DMACHO")
-elseif(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "elf*")
+elseif(CMAKE_ASM_NASM_OBJECT_FORMAT MATCHES "^elf")
   set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DELF")
   set(CMAKE_ASM_NASM_DEBUG_FORMAT "dwarf2")
 endif()
@@ -329,7 +329,7 @@
 # MIPS64 (Intrinsics)
 ###############################################################################
 
-elseif(CPU_TYPE STREQUAL "loongson" OR CPU_TYPE MATCHES "mips64*")
+elseif(CPU_TYPE STREQUAL "loongson" OR CPU_TYPE MATCHES "^mips64")
 
 set(CMAKE_REQUIRED_FLAGS -Wa,-mloongson-mmi,-mloongson-ext)