The always @(*) syntax was added to the ieee verilog std in 2001.
All modern verilog tools (simulators, synthesis, etc. ) support this syntax.
Here is a quote from the lrm (1800-2009):
The (*) means build the sensitivity list for me.
For example, if you had a statement a = b + c;
Then you'd want a to change every time either b or c changes.
In other words, a is sensitive to.