Regex

Get string, so long as the first char isn't a number OR is the start
What a horrible thing I just typed.

(?:^|.*[^0-9])[0-9]{16}(?:$|[^0-9].*$)

is a non-capturing group.