t = db.regex_matches_self;
t.drop();

t.insert({r:/^a/});
t.insert({r:/^a/i});
t.insert({r:/^b/});

// no index
assert.eq( /^a/, t.findOne({r:/^a/}).r, '1 1 a')
assert.eq( 1, t.count({r:/^a/}), '1 2')
assert.eq( /^a/i, t.findOne({r:/^a/i}).r, '2 1 a')
assert.eq( 1, t.count({r:/^a/i}), '2 2 a')
assert.eq( /^b/, t.findOne({r:/^b/}).r, '3 1 a')
assert.eq( 1, t.count({r:/^b/}), '3 2 a')

// with index
t.ensureIndex({r:1})
assert.eq( /^a/, t.findOne({r:/^a/}).r, '1 1 b')
assert.eq( 1, t.count({r:/^a/}), '1 2 b')
assert.eq( /^a/i, t.findOne({r:/^a/i}).r, '2 1 b')
assert.eq( 1, t.count({r:/^a/i}), '2 2 b')
assert.eq( /^b/, t.findOne({r:/^b/}).r, '3 1 b')
assert.eq( 1, t.count({r:/^b/}), '3 2 b')

t.insert( {r:"a"} );
assert.eq( 2, t.count({r:/^a/}), 'c' );