r = /(\(+)
([^\(]+)
(\)+)
/x

"(a b)(c d e)" .scan(r).map do |m|
puts m.to_s
end