    'sed with ? or +, use POSIX BRE instead (\{m,n\})'
    "sed with \|, use POSIX BRE (possibly multiple sed invocations) or another tool instead"
    'sed with -r or -E, drop and use POSIX BRE instead'
# TODO: $ in sed subexpression used as an anchor (POSIX BRE optional, not in
                iso9660 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g proc qnx4
                umsdos usbfs vfat xfs' -- "$cur"))
                Proxy-Authorization Range Referer Retry-After Server TE Trailer
    _filedir 'bmp|gif|jp?(e)g|pcd|png|p[pgb]m|tif?(f)|webp|xpm|xwd|?(e)ps|pdf|dvi|txt|svg?(z)|cdr|[ot]tf'
# chage(1) completion                                      -*- shell-script -*-
    complete -F _chage chage
		chage \
    @pytest.mark.complete("chage ")
    @pytest.mark.complete("chage -", require_cmd=True)
    # - ifconfig on Linux: HWaddr or ether
    # - ifconfig on FreeBSD: ether
    # - ip link: link/ether
            "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]].*|\2|p" -ne \
            "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]]*$|\2|p"
		ether-wake \
	$(ss) ether-wake \
# Linux ipsec(8) completion (for FreeS/WAN and strongSwan) -*- shell-script -*-
            COMPREPLY=($(compgen -W 'ash ether ax25 netrom rose arcnet \
                        iif | oif)
                                nat goto iif oif not' -- "$cur"))
        ?(-)U | [^-]*U | -u | --[Uu]ser)
                filename firmware intree license name parm release_date
    _filedir 'xpm|tif?(f)|png|p[npgba]m|iff|?(i)lbm|jp?(e)g|jfi?(f)|gif|bmp|arg?(b)|tga|xcf|ani|ico|?(e)ps|pdf|dvi|txt|svg?(z)|cdr|[ot]tf|ff?(.gz|.bz2)'
                hpfs iso9660 jffs2 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g
                msdos | umsdos | vfat | auto)
        self._test("root username1 username2", "ro ot")
        self._test("root username21 username2", "ro ot")
