You want to match same text against 2 different whole-line patterns.
It's achievable either by matching patterns consequently:
$ cat file
1234567 90
1234567890
123 456 789 0123
123 456 789 01 23
$ sed -rn '/^([0-9] ?){9,12}[0-9]$/{/^([0-9]+ ){0,3}[0-9]+$/p}' file
1234567890
123 456 789 0123
$
Or if Your regex engine (perl/"grep -P"/java/etc) supports lookaheads - patterns can be combined:
// This is Java
Pattern p = Pattern.compile("(?=^([0-9] ?){9,12}[0-9]$)(?=^([0-9]+ ){0,3}[0-9]+$)^.*$");
System.out.println(p.matcher("1234567 90").matches()); // false
System.out.println(p.matcher("123 456 789 0123").matches()); // true
System.out.println(p.matcher("123 456 789 01 23").matches()); // false