Quando tive o problema exato, não consegui consultar ignorando maiúsculas e minúsculas. Acabei copiando o valor que queria pesquisar normalizando-o. Nesse caso, você pode criar uma nova propriedade e convertê-la em minúsculas e ter um índice nela.
EDITAR:
DBObject ref = new BasicDBObject();
ref.put("myfield", Pattern.compile(".*myValue.*" , Pattern.CASE_INSENSITIVE));
DBCursor cur = coll.find(ref);
Eu me pergunto se isso funciona?