From 17e897e2d69cc4b659fefcf7765c29c2f896d846 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Mon, 21 Apr 2025 19:11:37 -0400 Subject: [PATCH] Accept escaped hyphens, even outside character class --- regex/postfixNode.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/regex/postfixNode.go b/regex/postfixNode.go index 0447669..b3b9797 100644 --- a/regex/postfixNode.go +++ b/regex/postfixNode.go @@ -131,13 +131,9 @@ func newEscapedNode(c rune, inCharClass bool) (postfixNode, error) { case 'v': // Vertical tab toReturn.nodetype = characterNode toReturn.contents = append(toReturn.contents, rune(11)) - case '-': // Literal hyphen - only in character class - if inCharClass { - toReturn.nodetype = characterNode - toReturn.contents = append(toReturn.contents, '-') - } else { - return postfixNode{}, fmt.Errorf("invalid escape character") - } + case '-': // Literal hyphen + toReturn.nodetype = characterNode + toReturn.contents = append(toReturn.contents, '-') default: // None of the above - append it as a regular character if isNormalChar(c) { // Normal characters cannot be escaped return postfixNode{}, fmt.Errorf("invalid escape character")