Mislim da je generalno lose resenje za ovakve stvari se oslanjati na podrsku same baze, pogotovo ako recimo imate veliki broj zapisa, te vam je koriscenje indeksa neophodno.
Kada mi je potrebno case-insensitive i "nasa slova"-insensitive pretrazivanje najcesce mi se kao najbolje resenje pokazalo dodavanje novog polja gde bi prilikom insert-a i update-a kesirali vrednost polja koje se pretrazuje, tako sto se nasa slova zamene sa ccszdj i ceo string prebaci u lower-case. Polje se lepo indeksira, a resenje je nezavisno od DB platforme. Postoji doduse i drawback, a to je da ako pretrazujete po "ćerka" dobicete i zapise gde se pominje "čerka", ali to se moze smatrati i kao feature ;-).
Slicno resenje se moze primeniti, ako je recimo potrebno pretrazivanje po kraju stringa, a nije moguce indeksirati po funkciji. Tada u takvo dodatno polje se upise string sa karakterima u obrnutom redosledu, te se i ono moze "normalno" indeksirati.
Sem za pretrazivanje, ovakva polja su zgodna i za sortiranje.