07|+44[0-9() -]*[0-9]{1}$
♦ Starting and ending string delimeters
♦ Requires the first part of the string to be 07 or +44
♦ Any number (0-9) or parenthesis or hyphen or space for any amount of character
♦ The last one character is a number.
So, it would match the following:
07 color=green 456-789[/color]0
+441234567890
07 123-456-7890
+44 123 456 7890
Now, I don't live in EU, so I don't know the normal tele number format. So, if you wanted to limit the number of characters that the actual phone number is, you'd put the range in {} (like the last one).
So a US phone number format (10 digits: 3 for zip, 3 for first part, 4 for last part) would look like:
[0-9() -]{10, 14}
Meaning it would match
1234567890 <-- 10 straight digits
(123) 4567890 <-- 13 digits
(123) 456-7890 <-- 14 digits, Normal formatting of phone number
Now, to put it into your circumstances (assuming EU phone numbers are 10 digits long) you'd have to define that the last number is in fact a number (we've done that), so 10-1 = 9. So at least 9 digits, at most 13 digits/spaces/hyphens/parenthesis.
Hope that helps....
EDIT
Now, if EU phone numbers are formatted just like US phone numbers, you could use this regex as well:
07|+44[ ]?[(]?[0-9]{3}[)]?[ ]?[0-9]{3}[ -]?[0-9]{4}$