diff --git a/mode/handlebars/handlebars.js b/mode/handlebars/handlebars.js
index 40dfea42afa40ec0cbec84500fe930e6cb442101..d6d9f5b0f392a40ad7753d430a912227b9f29746 100644
--- a/mode/handlebars/handlebars.js
+++ b/mode/handlebars/handlebars.js
@@ -21,8 +21,8 @@
       { regex: /\}\}/, pop: true, token: "tag" },
 
       // Double and single quotes
-      { regex: /"(?:[^\\]|\\.)*?"/, token: "string" },
-      { regex: /'(?:[^\\]|\\.)*?'/, token: "string" },
+      { regex: /"(?:[^\\"]|\\.)*"?/, token: "string" },
+      { regex: /'(?:[^\\']|\\.)*'?/, token: "string" },
 
       // Handlebars keywords
       { regex: />|[#\/]([A-Za-z_]\w*)/, token: "keyword" },
diff --git a/mode/nsis/nsis.js b/mode/nsis/nsis.js
index 4c73fb73a8a2401430c43bee3598af23485d2228..172207c5a1f4177fd8f8a6cfa4c4f2daf4e50813 100644
--- a/mode/nsis/nsis.js
+++ b/mode/nsis/nsis.js
@@ -19,9 +19,9 @@ CodeMirror.defineSimpleMode("nsis",{
     {regex: /(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/, token: "number"},
 
     // Strings
-    { regex: /"(?:[^\\]|\\.)*?"/, token: "string" },
-    { regex: /'(?:[^\\]|\\.)*?'/, token: "string" },
-    { regex: /`(?:[^\\]|\\.)*?`/, token: "string" },
+    { regex: /"(?:[^\\"]|\\.)*"?/, token: "string" },
+    { regex: /'(?:[^\\']|\\.)*'?/, token: "string" },
+    { regex: /`(?:[^\\`]|\\.)*`?/, token: "string" },
 
     // Compile Time Commands
     {regex: /(?:\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|makensis|searchparse|searchreplace))\b/, token: "keyword"},