something like this:
open red box with key
or
open red box
to be broken down to open as .group("verb"), red box as .group("object"), with as .group("preposition"), and key as .group("indirectobj")
my current pattern is "^(?P<verb>open)\W*(?P<object>\w*\W{1})\W*(?P<preposition>with|\Z)\W*(?P<indirectobj>\w*)"
it's not working, and i'm kinda out of ideas.