Take a look at the lookaround syntax described here:
http://www.regular-expressions.info/refadv.html
You could use something like this:
'[\d]{7,11}(?![\d]+)'
This uses a zero-length look ahead.
The problem with the look-behind is that some regex engines only allow plain text in the look-behind.
But, if you know what could be before the number you are matching, you could craft that into the regex.
I am sure there is a simpler way....