This seems simple but I've been struggling for hours now. The pattern is simple, a telephone number that optionally starts with a +, has 10-15 digits, and optionally has spaces, dashes or parentheses. The numbers and characters should be in no particular order.
I've tried using non-matching groups and seen so many different ways of validating phone numbers, but to no avail.
The best I have so far is ^\+?([0-9]{10-15}[)( -]*)$
, but it only accepts the other characters if they're at the end of the pattern. This expression will be used in a Java context.