Try using some word boundaries \b
:
(?:\b\d|\+)(?:\+|\d|\(|\)|-| |\.){7,25}\b
And I turned the capture groups into non-capturing groups. If you only need the whole number, I don't think that you need capture groups.
\b
matches when there is a 'word' character followed by a 'non-word' character or vice versa (i.e. either \w\W
or \W\w
).