Hmmm. Well, I'd love to here why LazyRexexp was deemed unsuitable. In the context of how Lazy* is used in other similar classes in Ruby it actually makes perfect sense to me. I think you took some Ruby advice from non-Ruby people. 

In any case, MongoRegexp won't do either and makes zero sense as well. This is a representation of a BSON type, not a "mongo" type and I think we're mixing driver naming schemes into our BSON implementation here. Even if we don't go with LazyRegexp we need to come up with something different than this.

BSON::Regex
BSON::UncompiledRegexp
BSON::DBRegexp

Any of those make more sense to me and are more descriptive about what the object represents. Keep in mind that our BSON gem is intended to be able to be used outside of the driver. Attaching it to "mongo" specific things in name or otherwise is no beuno.