From #punchcards to powerful #code in #opensource projects #PCRE and #Exim, Philip Hazel’s career is an exciting journey of #FOSS success and the evolution of #tech! 🐧

Dive into Hazel’s story on @LWN and consider carrying on the torch maintaining #PCRE2:

https://t.ly/RLY3Q

#LPI #LWN #techhistory #freesoftware #softwaredevelopment #github #perl #Linux #Unix #GPL #Apache #MariaDB

How free software hijacked Philip Hazel's life [LWN.net]

Link📌 Summary:
- Philip Hazel 開始開發 Exim 電子郵件傳送代理(MTA)時 51 歲,後來又開始了 PCRE(Perl-Compatible Regular Expressions)專案,到 80 歲時還在維護 PCRE,以及其後續的 PCRE2。
- Hazel 在成為自由軟體開發者之前已經開始寫代碼,而非在起步時。
- 在他的技術回憶錄《從穿孔卡片到平面顯示器》中,Hazel 表示他加入了劍橋計算機服務作為軟體開發人員是因為他了解 Manchester Autocode 語言,該語言與 Titan Autocode 相似,他在那裡開始了滑溜的下坡路。
- Hazel 還開發了 PCRE,為了 Exim 的靈活正則表示式,而不是使用 Smail 中的 Smail MTA。
- Hazel 在 1995 年 3 月開始工作在 Experimental Internet Mailer(Exim)中,到 11 月時它已經可以發送和接收郵件了。
- 在與 Richard Stallman 談過後,他將 Exim 的授權從自定義的授權切換到 GPL。
- Hazel 開發了 PCRE,現在被廣泛用於各種應用和作業系統中。
- Hazel 正在尋找 PCRE2 的繼任者,他計劃在需要時繼續維護非 PCRE2 的專案,並幫助 PCRE2。

🎯 Key Points:
- Hazel 在 1995 年開始 Exim 專案後的 27 年內一直在維護 Exim 和 PCRE。
- 他在 2007 年退休時將 Exim 的維護交接給他人。
- 他希望在仍然能夠幫助過渡時交接 PCRE2。

🔖 Keywords:
#Hazel, #Exim, #PCRE, #PCRE2, #GNU, #Linux, #Free Software, #Software Development, #Programming

How free software hijacked Philip Hazel's life [LWN.net]

PCRE4J: PCRE for Java

PCRE - Perl Compatible Regular Expressions

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API as well as a set of wrapper functions that correspond to the POSIX regular expression API.

Stop using `grep` and/or `sed` when all you need is modern `pcre2grep`.
The most useful thing about pcre2grep is capturing group support, it's as easy as:
`
echo "test <loc>http://test.com</loc>" | pcre2grep -o1 '<loc>(.*)<\/loc>'
`
to output only the 1st group.

On Debian-based systems pcre2grep and pcre2test are in package `pcre2-utils`
#PCRE2 #regex #shellscript #linux

@neustradamus #PCRE continues to be a misnomer; it’s a modified subset of #Perl #RegularExpressions with dozens of differences: https://pcre.org/current/doc/html/pcre2compat.html

It's not "(C)ompatible." Accept no substitutes: https://perldoc.perl.org/perlre

#PCRE2 #PerlIncompatibleRegularExpressions #RegularExpression #RegExes #RegExps #regex #regexp

pcre2compat specification

PCRE - Perl Compatible Regular Expressions

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API as well as a set of wrapper functions that correspond to the POSIX regular expression API.

.foreach() for regular expression matches has come to #opensource Varnish HTTP Cache.

Our #pcre2 #regex module https://gitlab.com/uplex/varnish/libvmod-re for #varnishcache now also supports iterating over matches on strings and HTTP bodies

uplex / varnish / libvmod-re · GitLab

Varnish Module for Regular Expression Matching with Subexpression Capture Primary repository is at https://code.uplex.de/uplex-varnish/libvmod-re.git

GitLab

@ovid #git has Perl “Compatible” #RegularExpressions.

This page tells you where they differ with actual #Perl regular expressions: http://www.pcre.org/current/doc/html/pcre2compat.html

Most notably, #PCRE2 only has a subset of #Unicode support: http://www.pcre.org/current/doc/html/pcre2unicode.html

pcre2compat specification

regsub() on bodies has finally arrived for #opensource Varnish HTTP Cache.

Our #pcre2 #regex module https://gitlab.com/uplex/varnish/libvmod-re for #varnishcache now also supports substitutions on bodies. Similar to the recently announced .match_body() method, this feature supports matches across storage segments while avoiding to make copies using PCRE2's partial match feature.

Another big thank you to Philip Hazel and Zoltan Herczeg for their great work on the essential regular expression library.

uplex / varnish / libvmod-re · GitLab

Varnish Module for Regular Expression Matching with Subexpression Capture Primary repository is at https://code.uplex.de/uplex-varnish/libvmod-re.git

GitLab