Parece una vieja pregunta, por lo que tal vez ya haya tenido una solución, pero aquí cómo manejé el mismo problema:
@Query(value = "{'title': {$regex : ?0, $options: 'i'}}")
Foo findByTitleRegex(String regexString);
usando el /?0/
la notación no funcionará ya que Spring Data coloca un valor de cadena entre comillas