Per RFC-5424, APP-NAME, PROCID and MSGID are defined as:
```
APP-NAME  = NILVALUE / 1*48PRINTUSASCII
PROCID = NILVALUE / 1*128PRINTUSASCII
MSGID = NILVALUE / 1*32PRINTUSASCII
...
PRINTUSASCII = %d33-126
NILVALUE = "-"
```

so, PRINTUSASCII is decimal 33 to 126, meaning from ! to ~. which includes - (minus, the NILVALUE)
I personally would define something like this:

```
SYSLOG5424PRINTASCII [!-~]+
SYSLOG5424BASE %{SYSLOG5424PRI}%{NONNEGINT:syslog5424_ver} +(?:%{TIMESTAMP_ISO8601:syslog5424_ts}|-) +(?:%{HOSTNAME:syslog5424_host}|-) +(?:%{SYSLOG5424PRINTASCII:syslog5424_app}) +(?:%{SYSLOG5424PRINTASCII:syslog5424_proc}) +(?:%{SYSLOG5424PRINTASCII:syslog5424_msgid}) +(?:%{SYSLOG5424SD:syslog5424_sd}|-|)
```

I do not think we need to add the length contrains of the RFC. 

Note that I did not verify the validity of my proposal with a formal test, there might very well be something I overlooked, this is really to give the general idea of my proposed changes.