There was still something wrong.  The original NOTTESTS are replaced
by the new '-x' arguments, losing the previous items.  Thus,
test_support, test_b1 & test_b2 are executed (and warnings issued).
(Discovered by Vladimir Marangozov.)
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 9a890a8..5944f8f 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -72,10 +72,13 @@
         # Strip trailing ".py" from arguments
         if args[i][-3:] == '.py':
             args[i] = args[i][:-3]
-    stdtests = STDTESTS
-    nottests = NOTTESTS
+    stdtests = STDTESTS[:]
+    nottests = NOTTESTS[:]
     if exclude:
-        nottests = args
+        for arg in args:
+            if arg in stdtests:
+                stdtests.remove(arg)
+        nottests[:0] = args
         args = []
     tests = tests or args or findtests(testdir, stdtests, nottests)
     test_support.verbose = verbose      # Tell tests to be moderately quiet