This worked for me:
select * from my_table where my_col ~ '[[:<:]]Outer\\.Middle[[:>:]](?!\\.)'
The . characters should be escaped (otherwise they are treated as a wildcard matching any one character), and backslashes need escaping too.
This is also equivalent to:
select * from my_table where my_col ~ '[[:<:]]Outer[.]Middle[[:>:]](?![.])'