def each
      return enum_for(__method__) unless block_given?

      each_event { |v, _, _, i|
        break if i > 0
        yield v
      }
    end
def each
      return enum_for(__method__) unless block_given?

      each_event { |v, _, _, i|
        break if i > 0
        yield v
      }
    end
Calls the given block once for each value in source

 @example
   Pattern.new([1, 2, 3]).each.to_a
   # => [1, 2, 3]

 @return [Enumerator]
 @yield [Object] value