diff --git a/src/lib.js b/src/lib.js
index <HASH>..<HASH> 100644
--- a/src/lib.js
+++ b/src/lib.js
@@ -28,8 +28,8 @@ const dePseudify = (function () {
              */
             '::?-(?:moz|ms|webkit|o)-[a-z0-9-]+'
         ],
-        // Actual regex is of the format: /([^\\])(:hover|:focus)/g
-        pseudosRegex = new RegExp('([^\\\\])(' + ignoredPseudos.join('|') + ')', 'g');
+        // Actual regex is of the format: /([^\\])(:hover|:focus)+/
+        pseudosRegex = new RegExp('([^\\\\])(' + ignoredPseudos.join('|') + ')+');
 
     return function (selector) {
         return selector.replace(pseudosRegex, '$1');
Fix dePseudify() regression when multiple ignored

If the `selector` here has multiple pseudo elements attached to it, then
this new "escape-aware" regular expression doesn't work without allowing
adding a quantifier after the closing parenthesis for the ignored
pseudos.