#!/usr/bin/ruby var tests = [ [/a/g, /b/i], [/a/i, /b/g], [/(a)/, /(b)/], [/a/i, :b], [/a/i, 1], [/a/x, /b/x], [/foo/aaxx, /bar/], [/foo/aaxx, /bar/xx], [/foo/axxa, /bar/xaa], ] for x,y in (tests) { assert_eq(x + y, Regex("#{x}#{y}")) } do { var t = /(foo)/+/(bar)/i assert("fooBar" ~~ t) assert("FooBar" !~ t) assert(["fooBAR".match(t)...], ["foo", "BAR"]) } do { var t = /(foo)/i+/(bar)/i assert("FooBar" ~~ t) } do { var t = /abc/i+'$42/3' assert('aBc$42/3' ~~ t) assert('aBc$42/3' ~~ eval(t.dump)) } do { var t = /abc2/i+'$42\/3' assert('aBc2$42\/3' ~~ t) assert('aBc2$42\/3' ~~ eval(t.dump)) } say "** Test passed!"