Eliminate uses of given.

This is because given now marked as experimental, and hence isssues warnings.
Special casing (?k<name!>:)

If '(?k<name!>:pat)' is used, then if -Keep is used, this is turned into
the named capture "name", as in '(?<name>pat)'. Without -Keep, it's turned
into a nameless capture, '(pat)'.