@xxx are snaps, limiting result to any resource from a website e.g. Wikipedia.com
!xxx are bangs, using the sites own search engine to return results. They are external searches, and might provide more (if the site does not expose certain parts to search engine) or less (if the site didn't build search capabilities for some parts but they are indexable) than snaps.
Lenses return search results based on certain criteria. Those could be a list of snaps (so domains), but also geography, keywords, file types, or they could exclude the same.
Agree, there's a lot going on. How I see it:
@xxx are snaps, limiting result to any resource from a website e.g. Wikipedia.com
!xxx are bangs, using the sites own search engine to return results. They are external searches, and might provide more (if the site does not expose certain parts to search engine) or less (if the site didn't build search capabilities for some parts but they are indexable) than snaps.
Lenses return search results based on certain criteria. Those could be a list of snaps (so domains), but also geography, keywords, file types, or they could exclude the same.