bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17856: Unmatched right parenthesis in ERE


From: Nathan Weeks
Subject: bug#17856: Unmatched right parenthesis in ERE
Date: Thu, 26 Jun 2014 08:10:29 -0500

GNU grep 2.20 disallows the use of an unmatched right parenthesis in
an extended regular expression:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ echo ')' | grep -E ')'
grep: Unmatched ) or \)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Other greps I've tried (AST grep 2014-01-06, BusyBox 1.22.1 grep, BSD
grep 2.5.1-FreeBSD on OS X 10.8, /usr/xpg4/bin/grep on Solaris
11.2-beta) accept ')' as a valid ERE.

POSIX apparently allows an unmatched right parenthesis in this
context, as section 9.4.3 (ERE Special Characters;
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_03)
states:

"The <right-parenthesis> shall be special when matched with a preceding
<left-parenthesis>, both outside a bracket expression."

and in section 9.5.1 (BRE/ERE Grammar Lexical Conventions)
(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_05_01),
the description of the "SPEC_CHAR" token contains the following
exception:

"The close-parenthesis shall be considered special in this context only if
matched with a preceding open-parenthesis."

--
Nathan Weeks
IT Specialist
USDA-ARS Corn Insects and Crop Genetics Research Unit
Crop Genome Informatics Laboratory
Iowa State University
http://weeks.public.iastate.edu/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]