#!/usr/bin/env ruby

class String
  #
  # split, return the array of elements and the delimiters as well
  #
  def spiffy_split(re)
    ret = [[], []]
    tmp = self.dup

    while md = re.match(tmp)
      ret[0] << tmp[0 ... md.begin(0)]
      ret[1] << tmp[md.begin(0) ... md.end(0)]
      tmp = tmp[md.end(0) .. -1 ]
    end

    ret[0] << tmp
    ret
  end
end

if __FILE__ == $0
  arys = "this is,a test|string".spiffy_split(/[,| ]/)
  p arys
end

