hace tiempo hice un resaltado igual, por palabra... digamos un ejemplo...
avión (
con acento)
primero debes pasar la palabra por un filtro para eliminar los acentos, osea... reemplazarlos por su vocal natural... resultado:
avion (
sin acento)
luego, reemplazamos todas las vocales por sus variantes:
a => (á|a|á|ä|â|...)
y bingo!!
el problema sería que si buscamos
avi, debería seleccionar la palabra completa en nuestro contexto, osea
avión y ahí es cuando usamos
(?=\pL) o
(?<\pL) para permitir lo dicho...