Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes.
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index 11e4470..58951b9 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -351,7 +351,7 @@
                 index = path.index('\'')
                 res = res + '\'' + path[:index + 1]
             except ValueError:
-                res = res + path
+                res = res + c + path
                 index = pathlen - 1
         elif c == '%':  # variable or '%'
             if path[index + 1:index + 2] == '%':
diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py
index 55da7e1..b9a4c90 100644
--- a/Lib/test/test_ntpath.py
+++ b/Lib/test/test_ntpath.py
@@ -206,6 +206,7 @@
             tester('ntpath.expandvars("%?bar%")', "%?bar%")
             tester('ntpath.expandvars("%foo%%bar")', "bar%bar")
             tester('ntpath.expandvars("\'%foo%\'%bar")', "\'%foo%\'%bar")
+            tester('ntpath.expandvars("bar\'%foo%")', "bar\'%foo%")
 
     @unittest.skipUnless(test_support.FS_NONASCII, 'need test_support.FS_NONASCII')
     def test_expandvars_nonascii(self):