resolves #498 permit !name syntax for undefining attribute

- remove unused attribute matching regular expressions
- normalize negated attributes before processing other assignments
- improved attribute tests