The following runs without issue:
(defrule foo (a ?+) =>)
this causes ppdefrule to return:
(ppdefrule foo)
(defrule MAIN::foo
(a ? +)
=>)
Note the space between the ? and + characters.
The following produces an error:
(defrule foo (a ?+) => (println "?+: " ?+))
[EXPRNPSR2] Expected a constant, variable, or expression.
ERROR:
(defrule MAIN::foo
(a ? +)
=>
(println "?+: " ?
Checked in a fix to the 64x and 70x versions.