An assertion that doesn't consume characters
You've already met one zero-width assertion: \b, the word boundary. It checks "am I at the boundary between word and non-word?" without consuming any character. That's what "zero-width" means — the assertion checks a property of a POSITION, not a CHARACTER.
Lookaround is the general form of this idea. (?=...) means "at this position, the following text matches ... — but don't move the cursor." The engine peeks ahead, confirms a match, then continues from where it was BEFORE the peek.
Why this matters
Without lookaround, you'd have to capture and consume context that you don't actually want in your match. Lookaround lets you say "this character matters, but only because of what surrounds it."
Concrete: "find numbers followed by 'kg' but only return the number." Without lookaround, you match the 'kg' and have to strip it. With lookahead: \d+(?=kg) matches the number AND asserts 'kg' follows, but the match is just the number.
The four flavors
Lookaround has four variants — two directions × two polarities:
(?=...)— positive lookahead: "... follows here"(?!...)— negative lookahead: "... does NOT follow here"(?<=...)— positive lookbehind: "... precedes here"(?<!...)— negative lookbehind: "... does NOT precede here"
Each is covered in its own lesson next.