To test a string value (not a property name) against a RegEx, you should use the "pattern" keyword:
{
"type": "object",
"properties": {
"progBinaryName": {
"type": "string",
"pattern": "^[A-Za-z0-9 -_]+_Prog\\.(exe|EXE)$"
}
}
}
P.S. – if you want the pattern to match the key for the property (not the value), then you should use "patternProperties" (it’s like "properties", but the key is a RegEx).