From owner-freebsd-hackers@freebsd.org Fri Apr 14 18:56:13 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B964D3E24D for ; Fri, 14 Apr 2017 18:56:13 +0000 (UTC) (envelope-from kevans91@ksu.edu) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0042.outbound.protection.outlook.com [104.47.33.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8FD1B9C6; Fri, 14 Apr 2017 18:56:11 +0000 (UTC) (envelope-from kevans91@ksu.edu) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ksu.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3YvMaCZrxv8xPxTq608KPk97saL0YW9nNR5OHRmqoRQ=; b=oDXfapV1WTsHXvApjmpZr5h2phVcH+ZR6c2NleGAIEQhdfs42p/MOz6h4gSOUK30oe77LxQ2ffNXSIQbG3lvMtXbuZWNoLSAg7PYzmmKhIvvl8ife8HaIHFNHekoV9d8HbXJW71DtP/vEgPVwB7Kp3stTUanJkFJccJZNOVJ9DU= Received: from DM5PR05CA0023.namprd05.prod.outlook.com (10.173.226.33) by BN6PR05MB3570.namprd05.prod.outlook.com (10.174.234.159) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6; Fri, 14 Apr 2017 18:56:09 +0000 Received: from CY1NAM02FT050.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::209) by DM5PR05CA0023.outlook.office365.com (2603:10b6:3:d4::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6 via Frontend Transport; Fri, 14 Apr 2017 18:56:09 +0000 Authentication-Results: spf=pass (sender IP is 129.130.18.151) smtp.mailfrom=ksu.edu; freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=bestguesspass action=none header.from=ksu.edu; Received-SPF: Pass (protection.outlook.com: domain of ksu.edu designates 129.130.18.151 as permitted sender) receiver=protection.outlook.com; client-ip=129.130.18.151; helo=ome-vm-smtp2.campus.ksu.edu; Received: from ome-vm-smtp2.campus.ksu.edu (129.130.18.151) by CY1NAM02FT050.mail.protection.outlook.com (10.152.75.65) with Microsoft SMTP Server id 15.1.1019.14 via Frontend Transport; Fri, 14 Apr 2017 18:56:08 +0000 Received: from calypso.engg.ksu.edu (calypso.engg.ksu.edu [129.130.43.181]) by ome-vm-smtp2.campus.ksu.edu (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id v3EIu8k8006637; Fri, 14 Apr 2017 13:56:08 -0500 Received: by calypso.engg.ksu.edu (Postfix, from userid 110) id 1F9F3248318; Fri, 14 Apr 2017 13:56:08 -0500 (CDT) Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com [74.125.82.51]) by calypso.engg.ksu.edu (Postfix) with ESMTPA id C28402482FB; Fri, 14 Apr 2017 13:56:05 -0500 (CDT) Received: by mail-wm0-f51.google.com with SMTP id t189so69721399wmt.1; Fri, 14 Apr 2017 11:56:05 -0700 (PDT) X-Gm-Message-State: AN3rC/6FioYP8KBcIDQZ2s5zBGQnFyEHzz4PuPcdqpmPCbdfFULfCY+7 2+HR6PWbO28NSOdb1rcEk30YDj2OzQ== X-Received: by 10.28.98.66 with SMTP id w63mr36546wmb.33.1492196164629; Fri, 14 Apr 2017 11:56:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.167.206 with HTTP; Fri, 14 Apr 2017 11:55:44 -0700 (PDT) In-Reply-To: References: From: Kyle Evans Date: Fri, 14 Apr 2017 13:55:44 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Replacing libgnuregex To: CC: Pedro Giffuni , Ed Maste X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:129.130.18.151; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39400400002)(39410400002)(39840400002)(39860400002)(39450400003)(2980300002)(438002)(24454002)(377454003)(199003)(189002)(69234005)(8676002)(38730400002)(110136004)(106466001)(8576002)(63696999)(76176999)(54356999)(42186005)(7906003)(50986999)(93516999)(498394004)(8936002)(450100002)(3480700004)(4326008)(53546009)(305945005)(356003)(55446002)(9896002)(606005)(75432002)(7116003)(5660300001)(90966002)(229853002)(2351001)(6916009)(512874002)(45336002)(46386002)(2950100002)(61726006)(236005)(2906002)(88552002)(6306002)(189998001)(221733001)(86362001)(61266001)(9686003)(6246003)(966004)(84326002)(54906002)(55456009); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR05MB3570; H:ome-vm-smtp2.campus.ksu.edu; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT050; 1:cZRVwphsQks9bL/iXgw6MuMgwgbEkYKAw9IOnbkKuqctzfiVz/r52/AegAOoHlS2MnDFtUQrCnDetAmlEZNk8V7LGPobgFtRJoFYERJKvVtYhOmiI1MoDlSguqRExbFaP910XHtK3nWpkbLpz47hdikNjo1o1DTlynKFWeO8xwm7doZ3VeZz4uO8WSv3X/aDl84M5A51/cQkbBGwIzSFAqen+Tt3SZK/jd2wEbyLOcuEyV4p5sUoaZjCDf1tQQJcmAM38STCriPvffCYFolCIGxG6PCSDawT1SvPcR5qoBJ+9rPe7B8qTXHwTe50/hKVDcyhDMUsrEua//nFCnTzLhAOV57bwKSepaCrZdZVT5BYk+8UcHPFZCGwkkFTzHk3jjuxYZ0oh1HhW0ws00Q2Yab94CD2MJtMkXmmK8J91WO8hRxiiwc526XxCGw84oaTfB61i59JHGjAvZsCS6pEbWtB/AEi5J9ksIKVFDLET7weiNhRTh9s7qrEv+nha5shF1HQXDY+4hC15FmQNFJC+ezew4NGXheQWeWYqSc/ebs= X-MS-Office365-Filtering-Correlation-Id: a88d3fa4-c546-480e-a03b-08d48367e9a9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BN6PR05MB3570; X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 3:88qUcyNQMuH6ubxRyeuzP8MVxpKvW3tLEXQYdIIWy4zRng3O70EHpotNtEGeWxvUEsWX34CukIW8hyO0HUNL6bhu8d06FTNxGxoxrR3oqE5I5FFKxH+7WoNDXZsHj14vRkvi6YxwHimM3UBVZ+9I35SYtRircbnadZcDVUj3zNycQUnsKcA0SZVtgKmJjmBqNND1raw5DMd9HKSFhXk6j8dIzvhrSW6f+HeN6P5uaHmjQrMverk3DCeXk5gHFFZuW7CvbIKvOWpy07PadWajzrgonHPjND8ddu1U8BFERqJK4XcmBxSxwgA7SXMchUHL0YMSPr4UvPWY4yeggAkfh7z9HuIf+NZt9Bvkp+e4Q6QF/FkVJ/kG1f+pnHOMsCy1L9h5D0HkkJTsW9zj5jcv2yUA7tTUcgENaTmSJ+FJzTYohqaknDI9SO7nll1VZ0D3BexUzEoJnT6KvmEKM+oxudmd42LCi3yfti0meWMWL9aWhu1+OkMWTq29kvtNLg05pDS79lIJUJth+rFpV8kQpA== X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 25:Um8cMkVtPikaBachp+u5NqEcZljWHF6gYvRLtUugX+s3bTIQGqXKTibz25KtSSSqJOYJSZpHJJw2TVD1w8xt2QKXx2+fD5OjnRJ1ioppzLSC/3jGv/lmYvvYmJYOg7u0gEEr600Gm7AqHjXIh7aQZrR4sWoEfTwBaDxRWptNgVMTW/3feKXD2McfX4QGWahQRD8fQN4lk4MNZbhKGfWvFkv6HghoUPCPtxFqNncQcdRUwzUvGVGwa/txJ+JukTWj6RM+WG1sKYAUB9r/4TXK7Geyv/2JHe9QaxMmBYkNJ5gzPLt0Ue2EjsZvcCIkSFTcgYrhI6VxRKW6lXR+WlikAdOnaMuEih5/UqqTFG+QngN+wIJ+xuojR/CFSVrk5kAJM5DrTCyvPXv4aa6HwRVPpArLJ0CpvI0DqBgGaHhih3SEbcoSrAqNFtgo43ekUzjqYbA1vSL5dr4z0NIw4flynv4ipn5eT43qnPS05NXiKow=; 31:u826m6AbEdb4xS1joNfnrqLxViKb+ULKcq3cClSc7nYzgRj3Gfu1tu+5INakMSNtWCSA4wSIVMmOFOt0ArfenDfzgtYJGZPmtxpEAu5MkcavpvZP+rXx3EjrZI20iM1VowRI9giXiRcMeDq5bUk2dCa+SjIL9ti4O65oCFjH5PRtINwikfsU93vmxKMItKooCMOQdnrp/v2z0CA0qfHTJtwHA2W3vq+LDE4BCN/uxCNW1r5UVAuobziKdhvgrY+NBZganYOl/hC4v57jhnoxBoVeD20JVsV9aAwMn/QAuns= X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 20:W9oAu16mAzuvixWNEj6z2G6b1dJa1ONFaevQTnNouIntSfCMsQY7mwFiCEjlOHPmG5smbYXvyj4sILen748qtMe8rwTVzs+fa5HpZ0xqGxYp/yaiTdvCstai2F+eyt9zLa1+EhNsdmtTuHY92qwkJKFz5zqvkOgL0Smhe818r3EUP7ibZov0trEKP78RhOEYDfCRjagGkPDkNQqU/CkCHFre3Zm2bxcI/x4iCakVuPwH7a4h2iGGl2TKhiZnftrSVjLqRDYZ3stz3yJWGWpUaijFHUGKnzx0mnoz8n0VMgTxgbpNjizLggAqSO7cHJAdtNwH/7c0m/yDWFtYpKvaYTlLO24A+Aw8Fi5iVZEQQxbadvSfl+HG2vVUJLT67a9WvRnTHL9XZWS/7QkTTiqNbfRxhPKHU9Arh35a/7zO6mervZTdFwBEMn1+8JJnOMzxlezr+Zlyt522RiZOrmOaWaKb7NBend6Pe/SDL6QV8ytRKm3C0o2LXhe3eZjHrgYd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(112903893386949); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13024025)(13023025)(13018025)(8121501046)(13017025)(13015025)(5005006)(93006095)(93004095)(3002001)(10201501046)(6041248)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148); SRVR:BN6PR05MB3570; BCL:0; PCL:0; RULEID:; SRVR:BN6PR05MB3570; X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 4:ibEdhJnpoZ4eosClq+sRohctfPJCK1yqgAa9axC0dwOBc81TH5jwER8DK3zQKZ30j/P5klZvAMi2RKGTUZ9lu/JGT3IppgMwMrX7SgHLiQAj1jwRDvwfcQYbhK0KYAMcbsv4O3m7eXMLyApelWusDEemSHW7YR34e/JTin0W9FZJd0C+3TBbLBhxaRqI4pRY/+0x8v2jjAz7nHUyMJ9jQ2V9jxWU6TqysKvfQYaSVe7IF77DCxYVqJLJsJEV33TvfcybLw8nPyLz6gN1Q/w/LuyIwAXEAAgiAmVbDSCG3qCugqzreZHVKdVqCMLe54x8DMMfTzAXeArSUTNhwBSSfimO+fadazCi1HEwC4oyFSr5noYPwSH66p3liHSlh4ohunxUJ+X1ZDpJ3D604Knnc7MfaJ5sOjVnYvvlroqO4DoXNhqaSAwmTcWJasCvCoXuxaBGHu7/5bQmKOlMa/3ytAFjYe736ReCVL2Zw7CQyeHDQSfs5Mzp72kFKVkROq5p1elrYeQjeWZxtF1R12W92ZPhas3Mw65INrE7yoSlHrhYI3i989DUPTDLcuFOFeZdKdjxONN9/R1T9JMhm77yL6GJ3BtI0yexm8FcKUAxKa6deSkh4NfbBPzDewHN1Yese43PeMy6gGcjXBh1Ih8sec1gUFQW/OPsWQCto5RNs1+Lagb2p8KaqVuTeHnBjHT0FitU29EGv12js3SxGYKAxN9gW3Pra58JWvcPAL41aIQ4sTZpF7WuHZeoqDCBTi/hCBsVywyXyMBt3eVirt3k06DzUiMHk836M48tvfXdyhtgsCgyFIh0PVABDlm5QS9S4/hiGrG6jU5Wyw1ihDF7fKCJZIR3gzyDXL3CysA1fHjYRJ7Cv/N5c5OWbVXKY/hnjyzYs9ufxGxft6ck7TtxDA== X-Forefront-PRVS: 02778BF158 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR05MB3570; 23:ocPHmsllCDfIkwoxSh2sCy4ynnGGObQhDNMUJFnGA?= =?us-ascii?Q?GLBrP6rVE4JP9Fqxd6vMVCC7ev2Fmqe1SsnOeeW3smFDS48GlKDHBjDetB3m?= =?us-ascii?Q?7IDn5ddLdityUaMFmHXhmOp2oML2TMUPQ0BeTPH5Q2eztmNCyjOA3H2i/GrK?= =?us-ascii?Q?cZZV51Jkq7BIvyVU15e67vD73w/WYKmaUd954sOr4bj6a4hZR6lVsr1wAwCO?= =?us-ascii?Q?9arMyLovodv+TTJ+KXEOPoglcGRE2rlCC7by4e2ioMbmGpCocOp2ojTY4mXe?= =?us-ascii?Q?KRI7dk/kwJM/2MwASsF2RcevaZxqRSOJR7tFEwhuaSCbdcKr1O1aztXO8ZxC?= =?us-ascii?Q?miEtEHZv1aAYxqqdNqHn0DqG8CwtEwf7AKMszkNvVtN0+DtfRY19Y72lzvw8?= =?us-ascii?Q?TTvVT9Y5b7GqbFtU1WIWFGGrCUC14vqYLb6acxSNO8gKm0zzubhC2IephcY1?= =?us-ascii?Q?Ay4tZpqB1pqxVXrxiUKl32N8TZh3aMM3+GbFmaiPoWaz5/zH8L7gpzWpKEOY?= =?us-ascii?Q?y2tNf/t6irpym1v+adJRQYuYX7vWnaAEtZX+/h4CTaWC59wsKq/qnERAGJGI?= =?us-ascii?Q?uxsVz7T9MiwvtuLR4vNb++i7+HHyjgOWKQF6woKGMKQ7jZd4qhPVCFy6bmiH?= =?us-ascii?Q?HFzZqXRynJsOJkwoA9I2Ixw376uvsetkPwHp4Q1vLbpiBfuoONRg5pJInO1S?= =?us-ascii?Q?uhNu3GffvjMDOmLeTvCXyUoUgsBqoHT3XPJ0vqLhcAuusqK0UXf4xD1Cyxcu?= =?us-ascii?Q?hFu9ltOv/54v/iXNCnY8OsnD4v+TEIVV2a1qTX7kiA2yff5Unxi6N9MbZXBw?= =?us-ascii?Q?wqcvDJ0T/VJeUELbewDzw1pCxGqxvcRw6Uhh2+aUh8ZfiCMqRfOZOiEs7Ycw?= =?us-ascii?Q?X83XPVp5GebE1EEeq/LkdacsJiRbzQtTgWiVPxE0Us2YNzuTkcJyyIRCoR5R?= =?us-ascii?Q?uXg3FavZ/rnsOMDefZrbHt3pX4LbVmQkx2hrYRoOCjsZChWl+7CeKV3zbjL1?= =?us-ascii?Q?7pMQgqhlELD4rDCvNZ77QnbI/RHmgWqZwnOlxCPGFGoG40PSt1DxmfTGyIok?= =?us-ascii?Q?/LdNCmPkbrkuUp9kReKvQfL1r4WTT44KXminruPBu5+zObJLR1lH2ZS+4drF?= =?us-ascii?Q?/qKFLa+QYL7EFSvZAaGyTRhCmphXlg0xIm1D6hYFuErv7Cu7ncoE/AcG6HtF?= =?us-ascii?Q?H+u2bCoseLGp1wujgNRNRjEUqzt8oR5fHRQjMqwryZW05anv4HKuXx/pUmnM?= =?us-ascii?Q?/wumeTkkc1/FxvmB+c4sGJEpAmHErFBvb9eQTgBpozQosLt3ds8kx6nWi6tK?= =?us-ascii?Q?wzzboeHWRpWVQB1rHheGq6p/dXg+jGbVRWejVMPZMhWHuceF6eJcMVHDLfxF?= =?us-ascii?Q?oJRbqJYFsgH6M45ui25dM/sikISY4+uH1Zdu7pTu7Pf7s4NsWSZX4eooPdY6?= =?us-ascii?Q?l/rVbELlJHbnkfofutVaRrjPDA+wxI=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 6:1hqFSIIgY3VtnHxEQkTGmhik55Cgs1jAdeS5u3KX6k81VoNGVbFFMwrGBTvP8MYTLkoRFKzJiDNyFe3rf3v9hBkMe8d5Tg/GDKch3V3X4TU9CsBM/oIXqAxCLhJ1G2oNI0frQcf8Z7iiB/gZXwtBjMXoTHCyx27x86QZjQgSBL0JgzaW2Ak+Uci7i+0CKJ7tKBCCPKYoA/OGm0mj+/iSiwa9yrj3xGQRsM9KTMojH9bzEkysp4pAq0ttjwZg+5PJWAWznkH9xPN3JAw2SPBYn9u+Ux5s0yl475Z6fiP0od0Deq37qgb8PZJWCR72fyGarNXOu7ct+nU4mb4nwzEXQjHZRITpgsAxrVb5JkMjmfuE9cm3wuSMWMCd7wwypmzVUCIqK/pTVt/G2R/bDM5G3WKoFYK66tw2gFJZ+tGDIMpeITmp8cDY11V45h8OI+pa/aBuzkHiC/uIxGewCze1YA==; 5:xfgnGkhrZIsynwdzCdoXY9P2hGWu/2dezAHlWSfnEh6w8Sk+BU49KGq0Iii5s/PEhNlTkN+DTW/lzfAaUFkIss7+2RuiZYcOgf6Wsi0Xob1mU5QxB7Slb+yWfGqw60y3J59GTik0Xl7X0ekXwPFKxQ==; 24:kAga1hxYnflteNGzDQP3/2sKPaO0OQN3Bq7k+P/oJpIrg3XQKnkkCf5iyXa4whxP0u05lVkBG71e3m3UbpIQ+Peh+vmgm0QahGzxojaAtAI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR05MB3570; 7:RN8s8QPqX6KY/sz2hCYd/tUjcEP9cu6WSra2CRrSBGMqRYAUL7TAF9DAxKQNc/BujZ5X3SuVdD9khcQrE3fzm237iMgnJySosmEo5heAdOy7p0Ys8V9Fs12jKsaSS1FCMGSjgzzV0r8OzE1DrSUqMMXgYlBlUs9HxJQgCl6z4gAlBWYS1sDjpCKF7NflODNC75E5NNTRtmpTbrx0AWvdXLNrmA8MlMTkNhmNhd2sMtcrD3Q/hxzT1EwltUXiWSnRMsj2YhaBAq9OJSKHOHNm5/6BuLVu35tFVGuRFXPEifhXSs/WP6vDE6XT/LReuNygp7UFgtIYpPIwXguvRHRCVA==; 20:5/HjOUXBIYkJ/1/oL8snETnFk3LZ6nki51peconWfz0z6T5eM4GH45KN/ufMRII0MWRaaPemug+zY/LFdnBluelJipRFXuUYW0OCOmQXqD/UJGq6s+9dUI7XuaQ5XfWV59b8LFx76uGiMOhf8R+wWd5ukpRTIwgNLMOz3gz0310= X-OriginatorOrg: ksu.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2017 18:56:08.8660 (UTC) X-MS-Exchange-CrossTenant-Id: d9a2fa71-d67d-4cb6-b541-06ccaa8013fb X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d9a2fa71-d67d-4cb6-b541-06ccaa8013fb; Ip=[129.130.18.151]; Helo=[ome-vm-smtp2.campus.ksu.edu] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB3570 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Apr 2017 18:56:13 -0000 On Tue, Apr 11, 2017 at 3:20 PM, Kyle Evans wrote: > > On the other hand, I think I could fairly easily implement most of these > into libc/regex. Here's a summary of what this option entails adding to > libc/regex, from what I've found: > > * Empty subexpressions(*) > * Add missing quantifiers to BREs: \?, \+ > * Add branching to BREs: \| > * Add backreferences (\1 through \9) to EREs > * Add \w, \W, \s, and \S corresponding to [[:alnum:]], [^[:alnum:]], > [[:space:]], and [^[:space:]] respectively > * Add word boundaries and anchors: > ** \b: word boundary > ** \B: not word boundary > ** \<: Strt of word > ** \>: End of word > ** \`: Start of subject string > ** \': End of subject string > > (*) I didn't actually find anything explicitly stating this as a GNU > extension, but it's certainly not conformant to POSIX specifications to > use, it gets used a tiny bit in some ports, and we implement a workaround > in bsdgrep(1) for the simplest case of empty expressions ("") to match > everything and produce zero length matches. > > The main benefit of this is not having to maintain a completely separate > regex parser and the potential for inconsistencies that come along with it. > The downside is that that would seem to promote expressions that are not > strictly POSIX conformant. Is this a problem? Is this a problem worth > worrying about? > > FYI- A patch showing what the implementation for all of the above into libc/regex looks like [1]. Some cleanup is still in order and the test set is not exhaustive, but this should implement all of the GNU extensions and it's at least functional. It will break some things (like one of the tests, for instance) that relied on being able to escape an ordinary character (e.g. \b) and get an ordinary character. This is specified as producing undefined behavior [2], though, so I don't feel terrible about breaking it. If this seems desirable, I can work on cleaning it up and splitting it into more consumable bites for FreeBSD's libc. Thanks, Kyle Evans [1] http://files.kyle-evans.net/freebsd/libc-gnuext.diff [2] http://pubs.opengroup.org/onlinepubs/009696899/basedefs/xbd_chap09.html#tag_09_03_03