> You don't need character classes for single characters: > Set = /\[[1-9]\d\]/ > Field = /FS?[1-9]\d*/ Makes for slightly better looking expressions. I thought this was the case, but didn't bother to check. > How about: > SetThenField = /#{Set}(\s)*#{Field}\s/ > (This is all untested but it might point you in a helpful direction.) Seems to work actually. I had found an old groups post about using #{} within regular expressions but didn't bother to try it because of the way they had explained it. irb(main):009:0> re1 = /[\w]+/ => /[\w]+/ irb(main):010:0> re2 = /[\d]+/ => /[\d]+/ irb(main):017:0> "Foo 123".match(/#{re1}[\s]+#{re2}/).to_s => "Foo 123" Thanks, - Geoff