1
2
3
4
5
6
7
8
9
10
11
12
    if options['pattern'] =~ %r{\A/(.*)/([imx]*)\z}
      transform = {
        'i' => Regexp::IGNORECASE,
        'x' => Regexp::EXTENDED,
        'm' => Regexp::MULTILINE,
      }
      ptrn, flags = $1, $2.split(//)
      f = flags.inject(0) { |flags, letter| flags += transform[letter] if transform.has_key? letter }
      @regexp = Regexp.new(ptrn, f)
    else
      raise "Invalid regular expression: #{options['pattern']}"
    end