^irgendwas ist ein unärer Operator, der einen Pointer auf "irgendwas" zurückgibt.
irgendwas^ greift direkt auf "irgendwas" zu.
Den Unterschied dürfte man sehen, wenn man schreibt:
Delphi-Quellcode:
var irgendwas: String[10];
pirgendwas:=^irgendwas;
showmessage(inttostr(sizeof(irgendwas)));
showmessage(inttostr(sizeof(pirgendwas)));
showmessage(inttostr(sizeof(pirgendwas^)));