Actually, the vim language utilizes regular expressions, so end of a single line is $ while ^ is the beginning of the line. Just like the regex: "/^[0-9]*$"
Vim is usually fairly efficient in what it makes you type, just not always as consistent as I'd like.