code: private Token tag() {
          Matcher matcher = scanner.getMatcherForPattern("^(\\w[-:\\w]*)(\\/?)");
          if (matcher.find(0) && matcher.groupCount() > 1) {
              consume(matcher.end());
              Tag tok;
              String name = matcher.group(1);
              if (':' == name.charAt(name.length() - 1)) {
                  name = name.substring(0, name.length() - 1);
                  tok = new Tag(name, lineno);
                  this.defer(new Colon(lineno));
                  while (' ' == scanner.getInput().charAt(0))
                      scanner.consume(1);
              } else {
                  tok = new Tag(name, lineno);
              }
              if (!matcher.group(2).isEmpty()) {
                  tok.setSelfClosing(true);
              }
              return tok;
          }
          return null;
      }
docs: },