code: protected Section extractGeneratedSection (Matcher m, String input)
      {
          int startIdx = m.start();
          String name = m.group(1);
          if (m.group(2).equals("DISABLED")) {
              return new Section(name, input.substring(startIdx, m.end()), true);
          }
          Preconditions.checkArgument(m.group(2).equals("START"), "'%s' END without START",
              name);
          Preconditions.checkArgument(m.find(), "'%s' START without END", name);
          String endName = m.group(1);
          Preconditions.checkArgument(m.group(2).equals("END"),
              "'%s' START after '%s' START", endName, name);
          Preconditions.checkArgument(endName.equals(name),
              "'%s' END after '%s' START", endName, name);
          return new Section(name, input.substring(startIdx, m.end()), false);
      }
docs: Returns a section name and its contents from the given matcher pointing to the start of a
  section. <code>m</code> is at the end of the section when this returns.