Q:

Negative lookbehind regex (PERL) with variable characters in-between

I'm having a problem with a negative lookbehind regex.  I've read the stackoverflow results and I'm afraid I don't quite understand them. 
I operate a game server, and I have a tool that reads the users' chat and kicks a user if they use a banned word.  The tool uses the PERL regex engine. 
Say my banned words are popular derivations of "bag" or "digger".  I can use the following regex to match chat lines containing these words. 
(? i)(digg|bag)(?-i)

There are other words in my actual list. 
However, I like to offer a warning first, which appears in chat as:

Owner: Don't say "digger"

So I've tried using a negative lookbehind to avoid matching my banned words list when it is preceded by "Owner:" - however, I can only get it to work if I specify the exact text I use between ":" and the banned word - which I don't always do, and frequently accidentally match my self. 
I've tried to use:
(? <! Owner\:)/s*(?i)(digg|bag)(?-i)

which works if there's only whitespace, but what I really want is to not match:

Owner:digger
Owner: Digger
Owner: don't use bag as an insult
Owner:(anything else here)dig

et cetera, but match:

(anything else):(any banned word regardless of what precedes it after the colon)

I can't work out if what I want is even possible in this syntax, because of zero-width assertions (which I can't wrap my head around), or if my regex-fu is just weak. 
I've tried a couple of tutorials, and using the regex101 parser, but I can't quite get what I want.  Please can you help? 

A:

Seems like you just want:
/^(?!Owner:).*(?i:(digg|bag))/s

Matching messages that don't start with Owner: and contain (case insensitive) digg or bag.