diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index 707f53583d7f9d9e50fe1c70bf7d73ad0d9a0900..696162b883a4591de3ea39e11b388f43e198d413 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -1019,7 +1019,11 @@ def normalise_win32_io_errors(name, opts):
 def normalise_version_( *pkgs ):
     def normalise_version__( str ):
         # (name)(-version)(-hash)(-components)
-        return re.sub('(' + '|'.join(map(re.escape,pkgs)) + r')-[0-9.]+(-[0-9a-zA-Z+]+)?(-[0-9a-zA-Z]+)?',
+        pkg_names = '(' + '|'.join(map(re.escape,pkgs)) + ')'
+        version = r'[0-9\.]+'
+        pkg_hash = r'(-[0-9a-zA-Z\+]+)'
+        component = r'(-[0-9a-zA-Z]+(\+[0-9a-zA-Z]+)?)'
+        return re.sub(f'{pkg_names}-{version}{pkg_hash}?{component}?',
                       r'\1-<VERSION>-<HASH>', str)
     return normalise_version__