local Q=Object.assign({},POSIX_CHARS,{SLASH_LITERAL=("\091\037\115\093"):format(WIN_SLASH),QMARK=WIN_NO_SLASH;STAR=("\037\115\042\063"):format(WIN_NO_SLASH);DOTS_SLASH=("\037\115\123\049\044\050\125\040\063\058\091\037\115\093\124\036\041"):format(DOT_LITERAL,WIN_SLASH);NO_DOT=("\040\063\033\037\115\041"):format(DOT_LITERAL);NO_DOTS=("\040\063\033\040\063\058\094\124\091\037\115\093\041\037\115\123\049\044\050\125\040\063\058\091\037\115\093\124\036\041\041"):format(WIN_SLASH,DOT_LITERAL,WIN_SLASH),NO_DOT_SLASH=("\040\063\033\037\115\123\048\044\049\125\040\063\058\091\037\115\093\124\036\041\041"):format(DOT_LITERAL,WIN_SLASH),NO_DOTS_SLASH=("\040\063\033\037\115\123\049\044\050\125\040\063\058\091\037\115\093\124\036\041\041"):format(DOT_LITERAL,WIN_SLASH);QMARK_NO_DOT=("\091\094\046\037\115\093"):format(WIN_SLASH),START_ANCHOR=("\040\063\058\094\124\091\037\115\093\041"):format(WIN_SLASH);END_ANCHOR=("\040\063\058\091\037\115\093\124\036\041"):format(WIN_SLASH)})
--[[*
 * Windows glob regex
 ]]
local WINDOWS_CHARS = Object.assign({}, POSIX_CHARS, {
	SLASH_LITERAL = ("[%s]"):format(WIN_SLASH),
	QMARK = WIN_NO_SLASH,
	STAR = ("%s*?"):format(WIN_NO_SLASH),
	DOTS_SLASH = ("%s{1,2}(?:[%s]|$)"):format(DOT_LITERAL, WIN_SLASH),
	NO_DOT = ("(?!%s)"):format(DOT_LITERAL),
	NO_DOTS = ("(?!(?:^|[%s])%s{1,2}(?:[%s]|$))"):format(WIN_SLASH, DOT_LITERAL, WIN_SLASH),
	NO_DOT_SLASH = ("(?!%s{0,1}(?:[%s]|$))"):format(DOT_LITERAL, WIN_SLASH),
	NO_DOTS_SLASH = ("(?!%s{1,2}(?:[%s]|$))"):format(DOT_LITERAL, WIN_SLASH),
	QMARK_NO_DOT = ("[^.%s]"):format(WIN_SLASH),
	START_ANCHOR = ("(?:^|[%s])"):format(WIN_SLASH),
	END_ANCHOR = ("(?:[%s]|$)"):format(WIN_SLASH),
})
