def smg(s, re) if s =~ re then groups = "" sep = "" $~.names.each { |nm| if $~[nm] groups += "#{sep}#{nm} = <<#{$~[nm]}>>" sep = ", " end } p "#{$`}<<#{$&}>>#{$'}" puts groups if !groups.empty? true else puts "no match" false end end