This command colors all, because in your file have that many i's.
$ egrep --color i\{1,2\} exte i ii iii iiii iiiii iiiiii
Take the example of third line in output. You didn't specified any constraint for a line matching starting of the line or ending of the line. So, it matches one by one. So, the first two i's in the second third line is matched. For the third i it checks the condition, that time also the condition is true. So, it matches all.
If you want more clear output you can use the -o option to what are all matching.
-o:-
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
$ egrep --color i? exte
The ? mark in grep regular expression, it matches zero or one occurrence of the preceding character. So, It is also working like the above command. All the i's matching one by one for the regex.
$ egrep --color i+ exte
The + means match one or more occurrence of the preceding character. So, it matches all the i's for line by line for a single occurrence.
If you want to see the output as clear format you have to use the -o option.
-ooption to print the string that matches the regexp instead of the line that contains the regexp.