ORACLE find some previous and next words in a NCLOB
===

I have large strings in NCLOB column and I'm allowing users to search in them. I'd like to diplay the results in best way possible. Is there any way to 'cut' some previous and next words in my result set? 

The results are found by using dbms_lob.instr() function. I've found some solutions, but they are way to complex and slow to use them in this case. 

What wold be most effective way? Combination of instr nad susbstr? Or regexp? I'm worried about the regexp performance on LOB columns.

Every help wold be greatly appreciated.