From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12336 invoked from network); 4 Jul 2022 19:41:45 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 4 Jul 2022 19:41:45 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1656963705; b=UpK0KBOL+ku/48KQ9s9aq1KqrKKdH+5m0kck0DRhLSdiZzZjvVUpumlRPtBm1W7GjeLFZFnKZk ORq5ykOLkTDQYDxO9teXaDrHKMX7vvlYxnGgaTc7r3jvpJo0ki760ItIVpLOvPBipSDZeTLcVi ild063L9lHRSHeL6sWvmHEjuvC0Aq22RkLieftRpT4ITXeyth/H6AbweVmi9M+nCiCBrSWMuAl xSfK73+kT4PmwhrFUBwGxqNgaaJMPtJHm/iZXlAKla3rFOmNx/bfzd48/jmmEf24noWhIriYYF T2XkLVyGPD1Hnz7zshVcMhmdrAN6+5JHwguEzfsx97Jsvw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1656963705; bh=GuEk+NOwna7N1HBWgWzODooQLXugmqskwSKx1YB30B0=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature: DKIM-Signature; b=ZaSL4FVidgvGZ2t0bWSvZPS15NHmRK+RXVc45tg5SImDDa7bLx2+b6Evf52ljwWY01OjYihglE WmJpSb4kS4VZ4r2ZiGhNfAL1WI/zsJeERcFXPRXKmwvXy2bPuOW+3DcEBxM2IWsDZ4NL9mRWbc JDFQGvgNinokD2e1k+QUhgaZsGOWl1NX9xg2EtpkCGTz/j/iOXj/njFJpj015Io1y8SHS/pfyq tlG6nJA4uO4c3R5jx8vSArJpyISkPbuD8VmVbtzvFaMTMjE666HiwRqWv85xdIgut04of5aDsh jxlTKJHKCAA3o5qgHRz6QdwjGFII+lc2L6Lgm1jvCyGc/A==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From: Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=dHClSdGhO/MKQgXlbJ+8bzxjdyvesb22yJ6UP7dItCg=; b=fVqvWjcJ7Y9HQ4I/azfrwbsYp+ vb6xkIjg+6bp+QDE0PBk1U4eijBhPoTA+haYSwKb6CbrxEpn8Vm45fJOABkGkb+bg7nqUx6q3Euzt 5KR7Ye2TgHRyon4nBu9a1n1LMt2YthgWGs4JIToXAJ3s2T8ZiFszJ3PkIspFTcavCsHUOvSy3M3H7 y9Cffvc8cvFrda4oAb1R06VPR9VUR/5x7ySXRDBCWTIIIC/VSGg7picV2ddArOwHBwa6dSOPLywOs OFwXuINb3sPiXSMwRV4w2S6op53EYSOK3ZbBf5Bur9zW7JKwHTPYOa3f59m3Xv8bH15Jo5FG8lcMo Ce7bHCWQ==; Received: from authenticated user by zero.zsh.org with local id 1o8Rx3-000K2y-0r; Mon, 04 Jul 2022 19:41:45 +0000 Authentication-Results: zsh.org; iprev=pass (smtpq1.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.96; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none Received: from smtpq1.tb.ukmail.iss.as9143.net ([212.54.57.96]:45088) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1o8Rwo-000Ji2-Dy; Mon, 04 Jul 2022 19:41:30 +0000 Received: from [212.54.57.82] (helo=smtp3.tb.ukmail.iss.as9143.net) by smtpq1.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1) (envelope-from ) id 1o8Rwn-0006bA-4i for zsh-workers@zsh.org; Mon, 04 Jul 2022 21:41:29 +0200 Received: from oxbe8.tb.ukmail.iss.as9143.net ([172.25.160.139]) by smtp3.tb.ukmail.iss.as9143.net with ESMTP id 8RwmoJqQTsyQZ8RwnorPAu; Mon, 04 Jul 2022 21:41:29 +0200 X-Env-Mailfrom: p.w.stephenson@ntlworld.com X-Env-Rcptto: zsh-workers@zsh.org X-SourceIP: 172.25.160.139 X-CNFS-Analysis: v=2.4 cv=W/8r6Dak c=1 sm=1 tr=0 ts=62c34269 cx=a_exe a=pgSR3NrKiwmx/6vnWRL19w==:117 a=TFo1Ee1GgIwA:10 a=IkcTkHD0fZMA:10 a=3QuPIvoMlhUA:10 a=q2GGsy2AAAAA:8 a=NLZqzBF-AAAA:8 a=pGLkceISAAAA:8 a=8gWT4hMYO54QbImklHQA:9 a=QEXdDO2ut3YA:10 a=z9dJwno5l634igLiVhy-:22 a=wW_WBVUImv98JQXhvVPZ:22 X-Authenticated-Sender: p.w.stephenson@ntlworld.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com; s=meg.feb2017; t=1656963689; bh=GuEk+NOwna7N1HBWgWzODooQLXugmqskwSKx1YB30B0=; h=Date:From:To:In-Reply-To:References:Subject; b=4a7YaZLP5HduT+VMNTb3zsm2Yjs+G3Wi7B4ZcUzl701DjBa92hVf3TYybtHhhQwsr JzrAD43vTiT7+HWm7nuOi12bQBt8enylnZxuLZqO910BNUJp72egleztheeM4cpM1q Hjwu0z6QmUmsuhAemWP251J5UdDwxlP2jGvBJ9s4BhMLg+JVKZz/IFkpcEJ2FvqD98 u2sW1BbudKGn4O4rMm6ttmUPRkacXEK6jIPNlWgy+8TNdruiZj2fVbg0Gsme4AOw1O kfu6ilJH6OnZWT3JLZ+j44EjHAPX3YfrlXDFR7aqldIvvEry0i+W/QNYYe0MEwfD0R oTt+PjjSN2rYA== Date: Mon, 4 Jul 2022 20:41:28 +0100 (BST) From: Peter Stephenson To: Zsh hackers list Message-ID: <1754611311.1326396.1656963688860@mail2.virginmedia.com> In-Reply-To: References: <76883431.1281129.1656942459330@mail2.virginmedia.com> Subject: Re: Extending regexes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Medium X-Mailer: Open-Xchange Mailer v7.8.4-Rev72 X-Originating-IP: 82.1.229.179 X-Originating-Client: open-xchange-appsuite X-CMAE-Envelope: MS4xfI/1RoLiEopLvuiulEGj7lsKyOoXoR2JIvEhZwedy2kfakjpwQMII3odgeenaEbLNoUnfziR64Pdz4UbZGVBJi1GCazS9U0OzCc8cLC9rL4fzeJiUUSP lJAZseE557UaayWOIWKCURmQDJpJUvxLSb3h2NtvimqUHRP0+79g1f4IpBDWDCVtIjpQp3YCfKavJxPfhBA6VHJ7TC/Z74BvfBjVPbNPcPnnOwR54/54DI1k X-Seq: 50403 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: > On 04 July 2022 at 20:15 Bart Schaefer wrote: > On Mon, Jul 4, 2022 at 6:53 AM Peter Stephenson > wrote:> > > > On 04 July 2022 at 13:03 Sebastian Gniazdowski wrote: > > > Zsh has extensions to regular regexes - the ~ and ^ negations. > > PWS correct me if I go too far astray, but (^Y) is internally (*~Y) > and (X~Y) is implemented by first matching (X) and then removing > anything that matches (Y) ... which is where the regular-ness goes > astray. My formal training on this is more than a little rusty, but I > believe this means chaining together two finite-state machines rather > than building a single one. That is basically how they're implemented. We have a sort of internal scratchpad that allows us to backtrack over the exclusions as a nested state of the main pattern match. You're entitled to say 'ick' at this point. pws