In reply to Harshit:
The signals in an immediate assertion are never sampled; they are evaluated at the point in the procedural process they appear.
The action block of a simple immediate assertion executes at that point as well. It’s the same an if-statement except you get the coverage recorded with pass/fail statistics.
The action block of a deferred immediate assertion gets postponed. This is to avoid glitches in combinational logic where the immediate assertion could get evaluated multiple times in the same time slot. Only the last evaluation of the assertion is considered.