code: function() {
      var captures;
      if (captures = /^(-)?(\d+\.\d+|\d+|\.\d+)(%|[a-zA-Z]+)?[ \t]*/.exec(this.str)) {
        this.skip(captures);
        var n = parseFloat(captures[2]);
        if ('-' == captures[1]) n = -n;
        var node = new nodes.Unit(n, captures[3]);
        node.raw = captures[0];
        return new Token('unit', node);
      }
    }
docs: '-'? (digit+ | digit* '.' digit+) unit