Pesquisas não sensíveis ao caso e acento no MongoDB e PHP

O problema

Vindo do MySQL, programadores ficam preguiçosos a respeito de pesquisar strings. MySQL faz todo o serviço sujo por você: pesquise joao e encontre joao, joão, João, JOÃO e qualquer outra variante.

Mas... quando você começa a utilizar o MongoDB, mesmo com suas características poderosas, você se perde. Vamos encontrar uma solução.

A solução

Uma função PHP utilizando Regular Expression (REGEX) para consultar o MongoDB.

! MongoDB evoluiu desde que este arquivo foi escrito (2013). Considere utilizar MongoDB Text Indexes como um solução muuuuito melhor.