code: public int getNextChars(Appendable out) /*const*/ {
          int pos=pos_;
          if(pos<0) {
              return 0;
          }
          if(remainingMatchLength_>=0) {
              append(out, chars_.charAt(pos));  // Next unit of a pending linear-match node.
              return 1;
          }
          int node=chars_.charAt(pos++);
          if(node>=kMinValueLead) {
              if((node&kValueIsFinal)!=0) {
                  return 0;
              } else {
                  pos=skipNodeValue(pos, node);
                  node&=kNodeTypeMask;
              }
          }
          if(node<kMinLinearMatch) {
              if(node==0) {
                  node=chars_.charAt(pos++);
              }
              getNextBranchChars(chars_, pos, ++node, out);
              return node;
          } else {
              // First unit of the linear-match node.
              append(out, chars_.charAt(pos));
              return 1;
          }
      }
docs: Finds each char which continues the string from the current state.
  That is, each char c for which it would be next(c)!=Result.NO_MATCH now.
  @param out Each next char is appended to this object.
  (Only uses the out.append(c) method.)
  @return The number of chars which continue the string from here.