I don't know what you mean by "end of string." Unless you anchor the expression using the ^, it is going to check until the end of the string. Now, it might not literally read the last char, depending on the regex. For 3 chars (min in your example), it probably will not, unless the last three chars are 'a\d
^\d'. I don't think that there is a way, in general, to figure out if the end of the string is a partial match (say, 'a\d\d'), other than to do subsequent subset matches, using $ at the end.
Illuminatus