names=compile,new
visibility=public
kind=defined

--- compile(string, option = nil, code = nil) -> Regexp
--- new(string, option = nil, code = nil) -> Regexp

文字列 string をコンパイルして正規表現オブジェクトを生成して返します。

第一引数が正規表現であれば第一引数を複製して返します。第二、第三引数は警告の上無視されます。

@param string 正規表現を文字列として与えます。

@param option [[m:Regexp::IGNORECASE]], [[m:Regexp::MULTILINE]],  
              [[m:Regexp::EXTENDED]] 
              の論理和を指定します。
              [[c:Fixnum]] 以外であれば真偽値の指定として見なされ
              、真(nil, false 以外)であれば
              [[m:Regexp::IGNORECASE]] の指定と同じになります。

@param code "n", "N" が与えられた時には、生成された正規表現のエンコーディングは ASCII-8BIT になります。
            それ以外の指定は警告を出力します。

@raise  RegexpError 正規表現のコンパイルに失敗した場合発生します。

  str = "This is Regexp"
  t1 = Regexp.compile("this is regexp", Regexp::IGNORECASE)
  t1.match(str)
  puts $~ #=> This is Regexp 

  t2 = Regexp.compile('
	this         # ここは使用されない
	\ is
	\ regexp     # ここも使用されない
  ', Regexp::EXTENDED | Regexp::IGNORECASE)
  t2.match(str)
  puts Regexp.last_match #=> This is Regexp

  str = "ふるいけや\nかわずとびこむ\nみずのおと"
  t2 = Regexp.compile("ふる.*?と", Regexp::MULTILINE)
  puts t2.match(str)[0]  #=> ふるいけや
                         #=> かわずと


