code: function exc(pattern, except) {
          var name = pattern + ' ~ ' + except;
          return new Pattern(name, function (str, pos) {
              return !except.exec(str, pos) && pattern.exec(str, pos);
          });
      }
docs: parses a pattern if it doesn't match another pattern