RegEx/Keyboard/Shortcut.regex.txt

# Matches Keyboard Shortcuts
# Keyboard Shortcuts are a <Modifiers> followed by a Key
(?<Modifiers>(?>(?<Alt>Option|Alt|LeftAltPressed|RightAltPressed|LeftAlt|RightAlt) # An <Alt> modifier
|(?<Control>Control|Ctrl|LeftCtrlPressed|LeftCtrl|RightCtrlPressd|RightCtrl) # A <Control> Modifier
|(?<Command>EnhancedKey|Command|Cmd|LeftCmd|RightCmd|Windows|Win|Apple|OpenApple) # A <Command> Modifier (the Windows or Apple key)
|(?<Shift>ShiftPressed|Shift|LeftShift|RightShift) # A <Shift> Modifier
)\+){0,3} # 0-3 modifiers are followed by a key. The Key can be
(?>(?<Key>.$) # A single-character key
|(?<VirtualKey>\{[^\}]+\}{1,2}) # A virtual key (enclosed in {}s)
|(?<KeyName>[^\,]+) # A key name
)