I am learning Java regex and in below program for list[4] item I am expecting 
"Its a valid number : +11234562222" but it prints as invalid. I have made - optional in regex (\\+\\d{1,2}-?). Can anyone point out what is missing in this code ? 
Current output
> Its a valid number : 123-456-2222
Its a valid number : +1-123-456-2222
Its a valid number : 1234562222
Its a invalid number : 12345622226
Its a invalid number : +11234562222
Expected output
> Its a valid number : 123-456-2222
Its a valid number : +1-123-456-2222
Its a valid number : 1234562222
Its a invalid number : 12345622226
Its a valid number : +11234562222
public static void vali_mobile_num(){
String mob_pat = "^(\\+\\d{1,2}-?)?+(\\d{3}-?){2}+\\d{4}$";
List list = new ArrayList();
list.add( "123-456-2222");
list.add("+1-123-456-2222");
list.add("1234562222");
list.add("12345622226");
list.add("+11234562222");
Pattern p = Pattern.compile(mob_pat);
list.forEach(x -> {
    Matcher m = p.matcher(x.toString());
    if(m.find()){
        System.out.println("Its a valid number : "+m.group());
    }
    else
        System.out.println("Its a invalid number : "+ x);   
});
}
 
    