diff --git a/runtime/syntax/testdir/runtest.vim b/runtime/syntax/testdir/runtest.vim
index f9c0db0..0758bcb 100644
--- a/runtime/syntax/testdir/runtest.vim
+++ b/runtime/syntax/testdir/runtest.vim
@@ -115,13 +115,26 @@
   " Create a map of setup configuration filenames with their basenames as keys.
   let setup = glob('input/setup/*.vim', 1, 1)
     \ ->reduce({d, f -> extend(d, {fnamemodify(f, ':t:r'): f})}, {})
+  " Turn a subset of filenames etc. requested for testing into a pattern.
+  let filter = filereadable('../testdir/Xfilter')
+    \ ? readfile('../testdir/Xfilter')
+	\ ->map({_, v -> (v =~ '\.' ? '^' : '\.') .. v .. '$'})
+	\ ->join('\|')
+    \ : ''
 
-  if exists("$VIM_SYNTAX_SELF_TESTING")
+  " Treat "\.self-testing$" as a string NOT as a regexp.
+  if filter ==# '\.self-testing$'
     let dirpath = 'input/selftestdir/'
     let fnames = readdir(dirpath, {fname -> fname !~ '^README\.txt$'})
   else
     let dirpath = 'input/'
-    let fnames = readdir(dirpath, {fname -> fname !~ '\~$' && fname =~ '^.\+\..\+$'})
+    let filter ..= exists("$VIM_SYNTAX_TEST_FILTER") &&
+		\ !empty($VIM_SYNTAX_TEST_FILTER)
+      \ ? (empty(filter) ? '' : '\|') .. $VIM_SYNTAX_TEST_FILTER
+      \ : ''
+    let fnames = readdir(dirpath,
+	\ {subset -> {fname -> fname !~ '\~$' && fname =~# subset}}(
+		\ empty(filter) ? '^.\+\..\+$' : filter))
   endif
 
   for fname in fnames
