Ответ 1
Собственно в соответствии с документацией,
Если для поля существует индекс, то MongoDB соответствует регулярному выражение против значений в индексе, которое может быть быстрее, чем сбор сканирование. Дальнейшая оптимизация может произойти, если выражение является "префиксным выражением", что означает, что все потенциальные совпадения начинаются с одной и той же строки. Это позволяет MongoDB построить "диапазон" из этого префикса и соответствует только этим значениям из индекс, который попадает в этот диапазон.
http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use
Другими словами:
Для/Jon Skeet/regex, mongo будет полностью проверять ключи в индексе, а затем будет получать согласованные документы, которые могут быть быстрее, чем сканирование коллекции.
Для/^ Jon Skeet/regex, mongo будет проверять только диапазон, начинающийся с регулярного выражения в индексе, который будет быстрее.