At first it depends on what you need:
Just verify if it is a valid (German) phone number or get the number in a defined format.
In any case it might be better to split the processing into multiple parts.
So you might for example replace the optional international prefix with a single '0' at first:
/^\+[0-9]{2}[^0-9]*/0/
# or
/^\+[0-9]{2}[ -/]*/0/
If you need to get the area code separately look for the next non-digit character. But that will not work for all inputs.
Finally remove all separation / delimiter characters (space, minus, slash). The final string should contain digits only and can be checked for min. and max. allowed length.