a=[""] gets.scan(/(\W(.+?)[\])]|.)(\??)/){b=[""]-[$3]+($2||$1).split($1["|"]||"") a.map!{|s|b.map{|t|s+t}}.flatten!} puts a