Welcome to WebmasterWorld Guest from 188.8.131.52
I would recommend:
preg_match("/\[([^\]]+)\]/", $title , $matches);
Which matches [, followed by 'IsNotABracket', followed by ].
The reason is if the string you are trying to find the match in continues beyond the closing bracket the .* matches the entire string, then has to work backward and forward until all possible matches are found, then the best match is chosen... For more detailed information, see the linked thread or the PHP preg manual.