I don't know about grep but I got quite good at regular expressions, for example to reverse the order of two columns of words in a file it was something like
Code:
:%s/{*[0-9a-Z]} {*[0-9a-Z]}/\\2 \\1/
Or something like that.
That is almost certaintly wrong though as I have not used regular expressions for ages.
But I could do a lot of things then which are rather time consuming to do in a 'modern' editor.
I used to use then to make my programs meet the required 'standard' of programming style or
'convention'. So I would have to change all my variable and function names etc..