I always wondered if it there was something wrong with my memory since I always have to lookup regex syntax between different languages. Turns out this is very much to be expected. Vim, java, JavaScript, ruby, objectivec etc each have their own quirks and idiosyncrasies for the less common switches and keyword and so you’re very likely to need to continuously reference the docs when switching between them. This post has a few great links that try to capture the differences, although even that one isn’t fully complete. As always, RTFM.
This Wikipedia article seems like a pretty good summary of the different systems out there.