code: func (s *Scanner) scanDigits() string {
  	var buf bytes.Buffer
  	for {
  		ch, _ := s.r.read()
  		if !isDigit(ch) {
  			s.r.unread()
  			break
  		}
  		_, _ = buf.WriteRune(ch)
  	}
  	return buf.String()
  }
docs: // scanDigits consumes a contiguous series of digits.