docs: function findPathDoc( parent ) {
          var obj;
          // print( this, 'findPathDoc' );
  
          regPathDoc.lastIndex = this._index;
          var score = regPathDoc.exec( this._path );
  
          if ( !score ) {
              // console.warn('findPathDoc');
              return new PathDoc( parent );
          }
  
          this._index = regPathDoc.lastIndex;
  
          // console.log( 'findPathDoc', score.xTo() );
          // print( this, 'findPathDoc', score );
  
          // (\\.)
          if ( score[1] !== undefined ) {
              obj = new PathParent( parent ).parse();
          }
          // (\\^)?(-?\\d*~\\d*|-\\d+)\\.?
          else if ( score[3] !== undefined ) {
              obj = new PathLimit( parent, score[3] ).parse();
              obj._revlist = score[2];
          }
          // (\\d+|[a-z][a-z\\d\\-]*)\\.?
          else if ( score[4] !== undefined ) {
              obj = new PathDoc( parent, score[4] ).parse();
          }
          // (\\^)?([*#+])\\.?
          else if ( score[6] !== undefined ) {
              obj = new PathRepeat( parent, score[6] ).parse();
              obj._revlist = score[5];
          }
          // \\$([a-z\\d_]+)\\.?
          else if ( score[7] !== undefined ) {
              // console.log('PathDoc:', score[7] );
              obj = new PathDoc( parent, this.valueKey( score[7] ) ).parse();
              // obj = new PathDoc( parent ).parse();
              obj._valkey = score[7];
              // obj._values = this._values;
          }
          // (:)
          else if ( score[8] !== undefined ) {
              obj = findPathFunction.call( this, parent );
          }
          // (\\[|\\()
          else if ( score[9] !== undefined ) {
              obj = new PathFilter( parent ).parse();
          }
          else {
              this._index = score.index;
              return;
          }
  
          return obj;
      }