I once wrote a phonenumber regex in python that matches international phone numbers but has special support for Dutch phone numbers. Maybe this can help you create your own regex.
If you want to run this snippet, note that this function uses the python regex module that you should install in order to use it.
import regex
def phone_regex():
"""
Matches phone numbers with formatting like spaces, parentheses and
dashes.
Has special checkig for dutch phone numbers, but supports international
phone numbers too.
more info:
https://en.wikipedia.org/wiki/List_of_international_call_prefixes
https://nl.wikipedia.org/wiki/Telefoonnummer
https://nl.wikipedia.org/wiki/Informatienummer
"""
# a number with possibly a dash prepended
num_dash = '(?:-\s*)?[0-9]\s*'
return regex.compile(r'''
^(?:
\s*
# Dutch phone number:
(?:
#regular numbers:
(?:
# a zero followed by a a nonzero number
0\s*[1-9]\s*
(?:''' + num_dash + '''){8}
|
# 3 digit area code in parentheses
\(0\s*[1-9]\s*[0-9]\s*\)\s*
(?:''' + num_dash + '''){7}
|
# 4 digit area code in parentheses
\(0\s*[1-9]\s*(?:[0-9]\s*){2}\)\s*
(?:''' + num_dash + '''){6}
)
|
# infonumbers:
(?:
# 0900 number
0\s*9\s*0\s*0\s*
|
# 0800 number
0\s*8\s*0\s*0\s*
|
# 0906 number
0\s*9\s*0\s*6\s*
|
# 0909 number
0\s*9\s*0\s*9\s*
)
(?:''' + num_dash + '''){4,7}
|
# 112 alarm number
1\s*1\s*2\s*
)
|
# International phone number:
# plus sign, to indicate international phone number
\+\s*
# the country code, can be 1 to 4 characters
(?:[0-9]\s*){1,4}
# area code, can be a number from 1 to 4 digits
(?:
# area code in parentheses
\((?:[0-9]\s*){1,4}\)\s*
|
# area code without parentheses
(?:[0-9]\s*){1,4}
)
# local number
(?:''' + num_dash + '''){5,9}
)$''', regex.X)