reg2 = Regexp.new("A(.*)CD(.*)EF")
str1 = "AbbccCDasdaEF"
str1 =~ reg2

これで得られる$1と$2をループかなにかで
添字をつけて取得できないものでしょうか?