xenchu:
BrowserUK's answer is the one you are looking for, but I don't think that your original regex is doing what you want it to do (I may be wrong).
Just as a start, you are matching any character before the pm at the end; you might want to escape that dot (that is, your original regex will match "apm" as well as "foo.pm"). Secondly, you are not requiring anything before the something-p-m at the end of the string. So, as noted, apm will match (with nothing captured in the map) as will .pm (with nothing captured there, either).
Also, note that a string ending in "sopm" will end up capturing an "s" in the map.
Update: Just noticed when re-reading my comments: I should have said that you are not requiring anything
between the second / and the something-p-m at the end of the string.