Does it have to be eregi?
I've got it working for preg_match:
<?php
$test =array("[123]bla bla bla bla bla","bla bla bla bla bla[123?]","bla bla bla [test] bla bla","bla bla bla [1234] bla bla","bla bla bla [12345] bla bla");
foreach ($test as $t)
{
echo $t;
if (preg_match("|\[[A-Z0-9]{4}\]|i",$t)) echo " - match<br>";
else echo " - no match<br>";
}
?>
Matching exactly 4 alphanumeric characters between [] case insensitive
EDIT: Ah - you've done it already...
Nevertheless - php tags are "eating" some important slashes at reg-ex. It should be "|[[A-Z0-9]{4}]|i"