--- gsub(pattern, replace)
--- gsub!(pattern, replace)
--- gsub(pattern) {|matched| .... }
--- gsub!(pattern) {|matched| .... }

    ʸ pattern ˥ޥåʬ((**)) replace 
    ֤ޤִʸ replace  \& 
    \0 ϥޥåʬʸˡ\1 ... \9  n 
    ܤγ̤Ƥ֤ޤִʸǤ \`
    \'\+ Ȥޤ $`
    $'$+ бޤ

          p 'abcabc'.gsub(/b/, '(\&)')   #=> "a(b)ca(b)c"

     replace άˤϥƥ졼Ȥư
    ֥åɾִ̤Ԥޤ֥åˤϰȤ
    ޥåʬʸϤޤ
    ޤ֥åʤξȰ㤤֥å椫Ȥ߹ѿ 
    $<digits> [Ȥ߹ѿ] 򻲾ȤǤޤ

          p 'abcabc'.gsub(/b/) {|s| s.upcase }  #=> "aBcaBc"
          p 'abcabc'.gsub(/b/) { $&.upcase }    #=> "aBcaBc"

    gsub ִʸ֤ޤ
    gsub!  self ѹ֤ޤִʤ
     nil ֤ޤ

          p 'abcdefg'.gsub(/cd/, 'CD')   #=> "abCDefg"

          str = 'abcdefg'
          str.gsub!(/cd/, 'CD')
          p str                          #=> "abCDefg"

          p 'abbbxabx'.gsub(/a(b+)/, '\1')   #=> "bbbxbx"

    ((**)):  replace  $<digits> [Ȥ߹ѿ/$1] 
    ȤȤϤǤޤ󡣤ʸɾǤϤޤޥå
    ԤƤʤǤޤ replace  \  2 Ť˥
    פʤФʤޤ(trap::\αƶ)

          # λǤ褯ְ㤤
          p 'abbbcd'.gsub(/a(b+)/, "#{$1}")       # ϴְ㤤
          p 'abbbcd'.gsub(/a(b+)/, "\1")          # ְ㤤
          p 'abbbcd'.gsub(/a(b+)/, "\\1")         # 
          p 'abbbcd'.gsub(/a(b+)/, '\1')          # 
          p 'abbbcd'.gsub(/a(b+)/, '\\1')         # ()
          p 'abbbcd'.gsub(/a(b+)/) { $1 }         # (äȤ)

    sub ⻲ȤƤ

    ruby 1.7 feature: 1.6 ϡpattern ʸξ硢
    ʸɽ˥ѥ뤷Ƥޤ1.7 ʹߤϡʸ
    󤽤ΤΤѥˤʤޤ

