В данном случае предпочтительной является установившаяся практика передачи аргументов, таких как
match_line(regex1, regex2, ...)
или
match_line(*array_of_regexes)
вместо
match_line([regex1, regex2, ...])
или
match_lines(array_of_regexes)
так что ваше согласование с массивом не требуется.
def match_line *regex
regex.detect{|r| @line =~ r}
Regexp.last_match
end