From: Brian Candler Date: 2009-01-16T20:22:55+09:00 Subject: Re: Describing degerate dna strings > any ideas? Here's a simple recursive expansion, with a block callback for each sequence found. def expand_seq(src, &blk) if src =~ /\A(.*?)\[(.*?)\](.*)\z/m prefix, chars, suffix = $1, $2, $3 chars.split(//).each do |ch| expand_seq(prefix + ch + suffix, &blk) end else yield src end end expand_seq "ac[ta]cct[gt]c" do |seq| puts seq end -- Posted via http://www.ruby-forum.com/.