Właściwie zgodnie z dokumentacją,
Jeśli dla pola istnieje indeks, MongoDB dopasowuje wyrażenie regularne do wartości w indeksie, co może być szybsze niż skanowanie kolekcji. Dalsza optymalizacja może nastąpić, jeśli wyrażenie regularne jest „wyrażeniem przedrostkowym”, co oznacza, że wszystkie potencjalne dopasowania zaczynają się od tego samego ciągu. Dzięki temu MongoDB może skonstruować „zakres” z tego prefiksu i dopasować tylko te wartości z indeksu, które mieszczą się w tym zakresie.
http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use
Innymi słowy:
Dla /Jon Skeet/
regex ,mongo w pełni zeskanuje klucze w indeksie, a następnie pobierze pasujące dokumenty, co może być szybsze niż skanowanie kolekcji.
Dla /^Jon Skeet/
regex ,mongo przeskanuje tylko zakres zaczynający się od wyrażenia regularnego w indeksie, co będzie szybsze.