On Wednesday 03 December 2003 17:32, Dmitry N Orlov wrote: > TEXT1 > some text, tabs, CRLF etc 1 > TEXT2 > TEXT1 > some text, tabs, CRLF etc 2 > TEXT2 > TEXT1 > some text, tabs, CRLF etc 3 > TEXT2 Something like this should help: open = "TEXT1" close = "TEXT2" array = data.scan(/#{Regexp::quote(open)}(.*?)#{Regexp::quote(close)}/m).flatten I get: array == ["\nsome text, tabs, CRLF etc 1\n", "\nsome text, tabs, CRLF etc 2\n", "\nsome text, tabs, CRLF etc 3\n"] with your data. -- sdmitry -=- Dmitry V. Sabanin MuraveyLabs.