diff --git a/.functions.sh b/.functions.sh
index 016ca65f25b0b5c05662c4ad29afef9c9b0bb71b..93205d0ba1dca88cc3f0a40c8ad02bb933e8bc26 100644
--- a/.functions.sh
+++ b/.functions.sh
@@ -17,13 +17,23 @@ function is_rc_tag()
   fi
   local _rva=$1
   local _tag=$2
-  local _rev=$(echo $_tag | cut -d '.' -f3- | cut -d '-' -f2)
+  local _rev=$(echo $_tag | cut -d '.' -f3- | cut -d '-' -f2-)
   if [ "${_rev#0.rc}" != "${_rev}" ] || [ "${_rev#0.prc}" != "${_rev}" ]; then
     echo "WARNING: tag ${tag} is a (pre-)release-candidate"
     printf "\n"
     eval ${_rva}=true
-  elif [ "${_rev#0_rc}" != "${_rev}" ] || [ "${_rev#0_prc}" != "${_rev}" ] ||
-      [ "${_rev#0-rc}" != "${_rev}" ] || [ "${_rev#0-prc}" != "${_rev}" ] ||
+  elif [ "${_rev#*_rc}" != "${_rev}" ] || [ "${_rev#*_prc}" != "${_rev}" ] ||
+      [ "${_rev#*-rc}" != "${_rev}" ] || [ "${_rev#*-prc}" != "${_rev}" ] ||
+      [ "${_rev#*.rc}" != "${_rev}" ] || [ "${_rev#*.prc}" != "${_rev}" ] ||
+      [ "${_rev#9rc}" != "${_rev}" ] || [ "${_rev#9prc}" != "${_rev}" ] ||
+      [ "${_rev#8rc}" != "${_rev}" ] || [ "${_rev#8prc}" != "${_rev}" ] ||
+      [ "${_rev#7rc}" != "${_rev}" ] || [ "${_rev#7prc}" != "${_rev}" ] ||
+      [ "${_rev#6rc}" != "${_rev}" ] || [ "${_rev#6prc}" != "${_rev}" ] ||
+      [ "${_rev#5rc}" != "${_rev}" ] || [ "${_rev#5prc}" != "${_rev}" ] ||
+      [ "${_rev#4rc}" != "${_rev}" ] || [ "${_rev#4prc}" != "${_rev}" ] ||
+      [ "${_rev#3rc}" != "${_rev}" ] || [ "${_rev#3prc}" != "${_rev}" ] ||
+      [ "${_rev#2rc}" != "${_rev}" ] || [ "${_rev#2prc}" != "${_rev}" ] ||
+      [ "${_rev#1rc}" != "${_rev}" ] || [ "${_rev#1prc}" != "${_rev}" ] ||
       [ "${_rev#0rc}" != "${_rev}" ] || [ "${_rev#0prc}" != "${_rev}" ]; then
     echo "ERROR! Tag ${tag} is an invalid tag"
     echo "ERROR! Use -0.rcXX or -0.prcXX for (pre-)release candidates"