Without knowing the regex/language being used I just hope that your supports the lookahead function:
^interface\s*(?!3\d\d)
I'm assuming that the text 'interface' starts at the beginning of the line - if not then remove the '^' at the start. Also, you example shows the early numbers don;t have a space between the 'interface' text and the following digit(s), while the last examples do. My suggestion allows for this with the '\s*' which can be modified as necessary.
If you want the number included as well, then add "\d{3}" or "\d+" on the end.
My test cases were:
interface1
interface2
interface29
interface30
interface31
interface39
interface40
interface299
interface300
interface301
interface310
interface398
interface399
interface400
interface 700
interface 701
and the above correctly identified all except those with number form 300 to 399. However it will fail to identify "interface3063" as it only looks ahead 3 digits and doesn't care about what happens after that, but you have not specified the correct behaviour in this case.
Susan