Wydaje się, że to stare pytanie, więc może masz już rozwiązanie, ale oto jak poradziłem sobie z tym samym problemem:
@Query(value = "{'title': {$regex : ?0, $options: 'i'}}")
Foo findByTitleRegex(String regexString);
używając /?0/
notacja nie będzie działać, ponieważ Spring Data umieszcza wartość String w cudzysłowie