you can improve your regex by using
/((?<=[!@.]calc\s)-?\d+.*)/iS
instead of
/((?<=[!@.]calc\s)\d+.*)/iS
better? :p