^ is used specifically to be able to halt text. You can look up its description under /haltdef

^ and non-^ are treated separately so events of both types can be fired by the same trigger.

Only the first event (of a given type) which matches the text is fired if multiple events are defined in the script.