From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 806 invoked by alias); 1 Jun 2018 09:50:30 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 23417 Received: (qmail 22597 invoked by uid 1010); 1 Jun 2018 09:50:30 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-6.9/5.0):. Processed in 2.847051 secs); 01 Jun 2018 09:50:30 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS,SPF_PASS,T_DKIMWL_WL_HIGH,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180601095021euoutp020686072bf99cb34521ad8cb6cd6939c6~0AGg8o-Gb3223532235euoutp02V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1527846621; bh=WHMLtCq+05gzH2uGA8FtfcygjkJ3pMtVzawwTmLgP/8=; h=Date:From:To:Subject:In-Reply-To:References:From; b=qnlCAl8lSQjlVplUjO8jtq+HKbRWGqSCEeUzBKtz9227e9JcnPl+AiumvGZs9E0yX g+r76GyvL70A66FhsDD+PxCGwu7XwLWtcCR1q+x7jhno4HCl8WNl7tSAoW6njFFL7a K4sPw/zmnqnpyQ8VKRG6IC0/uzSYaOcUIXFN82bg= X-AuditID: cbfec7f4-b4fc79c0000043e4-7c-5b1116dbeae1 Date: Fri, 1 Jun 2018 10:50:16 +0100 From: Peter Stephenson To: Zsh Users Subject: Re: How to best match $( ... ) in a string In-Reply-To: Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsWy7djPc7q3xQSjDQ5vkLDYcXIlowOjx6qD H5gCGKO4bFJSczLLUov07RK4MjbsOMRSMIetYuLcT8wNjL9Yuhg5OSQETCQmN79j6mLk4hAS WMEocefpViinh0li/qJV7BBON5PExAPnmGBabq1eyAqRWM4o0XH6GxNc1dmTq9ggnNOMEvu3 f4NyzjNKTJp+gBmkn0VAReJr2wJ2EJtNwFBi6qbZjCC2iICixJlf38B2CAsYSyxrOQ1mcwoE SvRcfwpUz8HBLyAkcaHZFuIMe4mje06ClfAKCEqcnPkE7CNmAXmJ7W/nMIPslRD4zCZxfclW VoiiMolP3ZMZIZpdJI6c/MoMYQtLvDq+hR3ClpH4v3M+1J/1Ett/dDFBDGphlFi56xM0zKwl +m5fZAQ5iFlAU2L9Ln2IsKPE4aadbCBhCQE+iRtvBSHu4ZOYtG06M0SYV6KjTQiiWk1iR9NW xgmMyrOQfDALyQezEOYvYGRexSieWlqcm55abJSXWq5XnJhbXJqXrpecn7uJEZgMTv87/mUH 464/SYcYBTgYlXh4L3zkjxZiTSwrrsw9xCjBwawkwjulDCjEm5JYWZValB9fVJqTWnyIUZqD RUmcN06jLkpIID2xJDU7NbUgtQgmy8TBKdXAGGVf1fN/w+xzD7LPJV6LbXDh0vg/+8mk7NXO ucqX77/LPJW6UWz2at0f/dYvnjanV5WWfltqLZ3Nv0ea43bwnYXqCdc8mVa9Uezd5c4Z6tTw +swusfLfi2vO2mtHCDut8rXxVffO/LNqj+PKHRuldn9pZUnSPuM9ay+DaoT13AU7FVWnL3z5 VomlOCPRUIu5qDgRALreGJgCAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Pd2bYoLRBk8nalvsOLmS0YHRY9XB D0wBjFF6NkX5pSWpChn5xSW2StGGFkZ6hpYWekYmlnqGxuaxVkamSvp2NimpOZllqUX6dgl6 GRt2HGIpmMNWMXHuJ+YGxl8sXYycHBICJhK3Vi9k7WLk4hASWMoo0bZtNRtEQkbi05WP7BC2 sMSfa11sEEWdTBLXf51mBEkICZxmlHj0PQ0icZ5R4vL9U6wgCRYBFYmvbQvAutkEDCWmbpoN 1iAioChx5tc3JhBbWMBYYlnLaTCbV8BZ4vXcG2D1nAKBEj3Xn7JDDF3CKLG06xdzFyMHB7+A kMSFZluIi+wlju45CdUrKHFy5hOwd5gFdCROrDrGDGHLS2x/O4d5AqPwLCRls5CUzUJStoCR eRWjSGppcW56brGRXnFibnFpXrpecn7uJkZgVGw79nPLDsaud8GHGAU4GJV4eC985I8WYk0s K67MPcQowcGsJMI7pQwoxJuSWFmVWpQfX1Sak1p8iNEUGBgTmaVEk/OBEZtXEm9oamhuYWlo bmxubGahJM573qAySkggPbEkNTs1tSC1CKaPiYNTqoGxNU29wutnU+E+9RSJ96cvbEu0yHq3 xZuplpNryhOdJof5m6UeuX7UTOmaKnb63YfG1uzrR7oeCP6t5A5nU2sSuTjzwIdytkThHYai gd6T59am72XXNj/3YJlI6oNFy/alP96hxJ5UdvuvckPWwfI7v6O+HVJ/m+Aoc7avRmrfnF1L d6XO2XdFiaU4I9FQi7moOBEAgN5hVqACAAA= Message-Id: <20180601095018eucas1p1662451fd258f46cdfdee319db48458a8~0AGeNx_UX2206222062eucas1p1m@eucas1p1.samsung.com> X-CMS-MailID: 20180601095018eucas1p1662451fd258f46cdfdee319db48458a8 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20180601084641epcas5p1ca4cd48fa463123bbe980d132fd19473 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180601084641epcas5p1ca4cd48fa463123bbe980d132fd19473 References: On Fri, 1 Jun 2018 10:44:58 +0200 Sebastian Gniazdowski wrote: > the problem is possible quoting, e.g. $( echo \) ). Has anyone a > pattern that would handle some sort of quoting? In general, this isn't possible. Apart from nested unquoted $(...), which is also valid, the real killer is echo $(case foo in foo) echo This does work ;; esac) This required us to rewrite our internal parsing completely and we're still shaking the odd bug out of the result. If you ignore that case, it's possible character by character with a bit of extra state for quotes, nested parentheses, etc. (as that's what zsh did for two decades) but you're going to need some incredibly sophisticated regular expression involving recursion to replace that. pws