Looks like the first char is checked against char 91 after being trimed of spaces.
so
"[MyDatabase].[dbo].[MyStoredProc]" => "MyDatabase"
"exec [MyDatabase].[dbo].[MyStoredProc]" => "exec [MyDatabase].[dbo].[MyStoredProc]"
"@x = [MyDatabase].[dbo].[MyStoredProc]" => "@x = [MyDatabase].[dbo].[MyStoredProc]"