kind=defined
names=unscan
visibility=public

--- unscan
スキャンポインタを前回のマッチの前の位置に戻します。

      s = StringScanner.new('test string')
      s.scan(/\w+/) # => "test"
      s.unscan
      s.scan(/\w+/) # => "test"

このメソッドでポインタを戻せるのは 1 回分だけです。
2 回分以上戻そうとしたときは例外 StringScanner::Error が発生します。
また、まだマッチを一度も行っていないときや、
前回のマッチが失敗していたときも例外 StringScanner::Error が発生します。

      s = StringScanner.new('test string')
      s.unscan      # StringScanner::Error: can't unscan: prev match had failed
      s.scan(/\w+/) # => "test"
      s.unscan
      s.unscan      # StringScanner::Error: can't unscan: prev match had failed
      s.scan(/\w+/) # => "test"
      s.scan(/\w+/) # => nil
      s.unscan      # StringScanner::Error: can't unscan: prev match had failed

selfを返します。

