diff options
| author | Paul Buetow <paul@buetow.org> | 2025-02-21 10:55:25 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-02-21 10:55:25 +0200 |
| commit | 5a76af565ea910512b0418c56437467068821fd6 (patch) | |
| tree | d8ee7610db5f698703d5891eb9b6aabd1f699f14 /gemfeed/2024-07-05-random-weird-things.gmi.tpl | |
| parent | a30460cc038708e3a01cbe8cf4d90c6572e26784 (diff) | |
| parent | 75655782fe8ad0b8b9b5fd26a6837e8a745b7268 (diff) | |
Merge branch 'content-gemtext' of codeberg.org:snonux/foo.zone into content-gemtext
Diffstat (limited to 'gemfeed/2024-07-05-random-weird-things.gmi.tpl')
| -rw-r--r-- | gemfeed/2024-07-05-random-weird-things.gmi.tpl | 352 |
1 files changed, 352 insertions, 0 deletions
diff --git a/gemfeed/2024-07-05-random-weird-things.gmi.tpl b/gemfeed/2024-07-05-random-weird-things.gmi.tpl new file mode 100644 index 00000000..24022f62 --- /dev/null +++ b/gemfeed/2024-07-05-random-weird-things.gmi.tpl @@ -0,0 +1,352 @@ +# Random Weird Things - Part Ⅰ + +> Published at 2024-07-05T10:59:59+03:00; Updated at 2025-02-08 + +Every so often, I come across random, weird, and unexpected things on the internet. I thought it would be neat to share them here from time to time. As a start, here are ten of them. + +<< template::inline::index random-weird-things + +``` + /\_/\ +WHOA!! ( o.o ) + > ^ < + / - \ + / \ + /______\ \ +``` + +<< template::inline::toc + +## 1. `bad.horse` traceroute + +Run traceroute to get the poem (or song). + +> Update: A reader hinted that by specifying `-n 60`, there will be even more output! + +```bash +❯ traceroute -m 60 bad.horse +traceroute to bad.horse (162.252.205.157), 60 hops max, 60 byte packets + 1 _gateway (192.168.1.1) 5.237 ms 5.264 ms 6.009 ms + 2 77-85-0-2.ip.btc-net.bg (77.85.0.2) 8.753 ms 7.112 ms 8.336 ms + 3 212-39-69-103.ip.btc-net.bg (212.39.69.103) 9.434 ms 9.268 ms 9.986 ms + 4 * * * + 5 xe-1-2-0.mpr1.fra4.de.above.net (80.81.194.26) 39.812 ms 39.030 ms 39.772 ms + 6 * ae12.cs1.fra6.de.eth.zayo.com (64.125.26.172) 123.576 ms * + 7 * * * + 8 * * * + 9 ae10.cr1.lhr15.uk.eth.zayo.com (64.125.29.17) 119.097 ms 119.478 ms 120.767 ms +10 ae2.cr1.lhr11.uk.zip.zayo.com (64.125.24.140) 120.398 ms 121.147 ms 120.948 ms +11 * * * +12 ae25.mpr1.yyz1.ca.zip.zayo.com (64.125.23.117) 145.072 ms * 181.773 ms +13 ae5.mpr1.tor3.ca.zip.zayo.com (64.125.23.118) 168.239 ms 168.158 ms 168.137 ms +14 64.124.217.237.IDIA-265104-ZYO.zip.zayo.com (64.124.217.237) 168.026 ms 167.999 ms 165.451 ms +15 * * * +16 t00.toroc1.on.ca.sn11.net (162.252.204.2) 131.598 ms 131.308 ms 131.482 ms +17 bad.horse (162.252.205.130) 131.430 ms 145.914 ms 130.514 ms +18 bad.horse (162.252.205.131) 136.634 ms 145.295 ms 135.631 ms +19 bad.horse (162.252.205.132) 139.158 ms 148.363 ms 138.934 ms +20 bad.horse (162.252.205.133) 145.395 ms 148.054 ms 147.140 ms +21 he.rides.across.the.nation (162.252.205.134) 149.687 ms 147.731 ms 150.135 ms +22 the.thoroughbred.of.sin (162.252.205.135) 156.644 ms 155.155 ms 156.447 ms +23 he.got.the.application (162.252.205.136) 161.187 ms 162.318 ms 162.674 ms +24 that.you.just.sent.in (162.252.205.137) 166.763 ms 166.675 ms 164.243 ms +25 it.needs.evaluation (162.252.205.138) 172.073 ms 171.919 ms 171.390 ms +26 so.let.the.games.begin (162.252.205.139) 175.386 ms 174.180 ms 175.965 ms +27 a.heinous.crime (162.252.205.140) 180.857 ms 180.766 ms 180.192 ms +28 a.show.of.force (162.252.205.141) 187.942 ms 186.669 ms 186.986 ms +29 a.murder.would.be.nice.of.course (162.252.205.142) 191.349 ms 191.939 ms 190.740 ms +30 bad.horse (162.252.205.143) 195.425 ms 195.716 ms 196.186 ms +31 bad.horse (162.252.205.144) 199.238 ms 200.620 ms 200.318 ms +32 bad.horse (162.252.205.145) 207.554 ms 206.729 ms 205.201 ms +33 he-s.bad (162.252.205.146) 211.087 ms 211.649 ms 211.712 ms +34 the.evil.league.of.evil (162.252.205.147) 212.657 ms 216.777 ms 216.589 ms +35 is.watching.so.beware (162.252.205.148) 220.911 ms 220.326 ms 221.961 ms +36 the.grade.that.you.receive (162.252.205.149) 225.384 ms 225.696 ms 225.640 ms +37 will.be.your.last.we.swear (162.252.205.150) 232.312 ms 230.989 ms 230.919 ms +38 so.make.the.bad.horse.gleeful (162.252.205.151) 235.761 ms 235.291 ms 235.585 ms +39 or.he-ll.make.you.his.mare (162.252.205.152) 241.350 ms 239.407 ms 238.394 ms +40 o_o (162.252.205.153) 246.154 ms 247.650 ms 247.110 ms +41 you-re.saddled.up (162.252.205.154) 250.925 ms 250.401 ms 250.619 ms +42 there-s.no.recourse (162.252.205.155) 256.071 ms 251.154 ms 255.340 ms +43 it-s.hi-ho.silver (162.252.205.156) 260.152 ms 261.775 ms 261.544 ms +44 signed.bad.horse (162.252.205.157) 262.430 ms 261.410 ms 261.365 ms +``` + +## 2. ASCII cinema + +Fancy watching Star Wars Episode IV in ASCII? Head to the ASCII cinema: + +=> https://asciinema.org/a/569727 + +## 3. Netflix's Hello World application + +Netflix has got the Hello World application run in production 😱 + +* https://www.Netflix.com/helloworld + +> By the time this is posted, it seems that Netflix has taken it offline... I should have created a screenshot! + +## C programming + +### 4. Indexing an array + +In C, you can index an array like this: `array[i]` (not surprising). But this works as well and is valid C code: `i[array]`, 🤯 It's because after the spec `A[B]` is equivalent to `*(A + B)` and the ordering doesn't matter for the `+` operator. All 3 loops are producing the same output. Would be funny to use `i[array]` in a merge request of some code base on April Fool's day! + +```c +#include <stdio.h> + +int main(void) { + int array[5] = { 1, 2, 3, 4, 5 }; + + for (int i = 0; i < 5; i++) + printf("%d\n", array[i]); + + for (int i = 0; i < 5; i++) + printf("%d\n", i[array]); + + for (int i = 0; i < 5; i++) + printf("%d\n", *(i + array)); +} +``` + +### 5. Variables with prefix `$` + +In C you can prefix variables with `$`! E.g. the following is valid C code 🫠: + +```c +#include <stdio.h> + +int main(void) { + int $array[5] = { 1, 2, 3, 4, 5 }; + + for (int $i = 0; $i < 5; $i++) + printf("%d\n", $array[$i]); + + for (int $i = 0; $i < 5; $i++) + printf("%d\n", $i[$array]); + + for (int $i = 0; $i < 5; $i++) + printf("%d\n", *($i + $array)); +} +``` + +## 6. Object oriented shell scripts using `ksh` + +Experienced software developers are aware that scripting languages like Python, Perl, Ruby, and JavaScript support object-oriented programming (OOP) concepts such as classes and inheritance. However, many might be surprised to learn that the latest version of the Korn shell (Version 93t+) also supports OOP. In ksh93, OOP is implemented using user-defined types: + +```ksh +#!/usr/bin/ksh93 + +typeset -T Point_t=( + integer -h 'x coordinate' x=0 + integer -h 'y coordinate' y=0 + typeset -h 'point color' color="red" + + function getcolor { + print -r ${_.color} + } + + function setcolor { + _.color=$1 + } + + setxy() { + _.x=$1; _.y=$2 + } + + getxy() { + print -r "(${_.x},${_.y})" + } +) + +Point_t point + +echo "Initial coordinates are (${point.x},${point.y}). Color is ${point.color}" + +point.setxy 5 6 +point.setcolor blue + +echo "New coordinates are ${point.getxy}. Color is ${point.getcolor}" + +exit 0 +``` + +=> https://blog.fpmurphy.com/2010/05/ksh93-using-types-to-create-object-orientated-scripts.html Using types to create object oriented Korn shell 93 scripts + +## 7. This works in Go + +There is no pointer arithmetic in Go like in C, but it is still possible to do some brain teasers with pointers 😧: + +```go +package main + +import "fmt" + +func main() { + var i int + f := func() *int { + return &i + } + *f()++ + fmt.Println(i) +} +``` + +=> https://go.dev/play/p/sPRdyDvXefK?__s=mk8u899owb9yurl256gw Go playground + +## 8. "I am a Teapot" HTTP response code + +Defined in 1998 as one of the IETF's traditional April Fools' jokes (RFC 2324), the Hyper Text Coffee Pot Control Protocol specifies an HTTP status code that is not intended for actual HTTP server implementation. According to the RFC, this code should be returned by teapots when asked to brew coffee. This status code also serves as an Easter egg on some websites, such as Google.com's "I'm a teapot" feature. Occasionally, it is used to respond to a blocked request, even though the more appropriate response would be the 403 Forbidden status code. + +=> https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#418 + +## 9. `jq` is a functional programming language + +Many know of `jq`, the handy small tool and swiss army knife for JSON parsing. + +=> https://github.com/jqlang/jq + +What many don't know that `jq` is actually a full blown functional programming language `jqlang`, have a look at the language description: + +=> https://github.com/jqlang/jq/wiki/jq-Language-Description + +As a matter of fact, the language is so powerful, that there exists an implementation of `jq` in `jq` itself: + +=> https://github.com/wader/jqjq + +Here some snipped from `jqjq`, to get a feel of `jqlang`: + +``` +def _token: + def _re($re; f): + ( . as {$remain, $string_stack} + | $remain + | match($re; "m").string + | f as $token + | { result: ($token | del(.string_stack)) + , remain: $remain[length:] + , string_stack: + ( if $token.string_stack == null then $string_stack + else $token.string_stack + end + ) + } + ); + if .remain == "" then empty + else + ( . as {$string_stack} + | _re("^\\s+"; {whitespace: .}) + // _re("^#[^\n]*"; {comment: .}) + // _re("^\\.[_a-zA-Z][_a-zA-Z0-9]*"; {index: .[1:]}) + // _re("^[_a-zA-Z][_a-zA-Z0-9]*"; {ident: .}) + // _re("^@[_a-zA-Z][_a-zA-Z0-9]*"; {at_ident: .}) + // _re("^\\$[_a-zA-Z][_a-zA-Z0-9]*"; {binding: .}) + # 1.23, .123, 123e2, 1.23e2, 123E2, 1.23e+2, 1.23E-2 or 123 + // _re("^(?:[0-9]*\\.[0-9]+|[0-9]+)(?:[eE][-\\+]?[0-9]+)?"; {number: .}) + // _re("^\"(?:[^\"\\\\]|\\\\.)*?\\\\\\("; + ( .[1:-2] + | _unescape + | {string_start: ., string_stack: ($string_stack+["\\("])} + ) + ) + . + . + . +``` + +## 10. Regular expression to verify email addresses + +This is a pretty old meme, but still worth posting here (as some may be unaware). The RFC822 Perl regex to validate email addresses is 😱: + +``` +(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] +)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?: +\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:( +?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ +\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0 +31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\ +](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+ +(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?: +(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z +|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n) +?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\ +r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ + \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n) +?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t] +)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ + \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])* +)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] +)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*) +*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+ +|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r +\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: +\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t +]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031 +]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]( +?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(? +:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(? +:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(? +:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)? +[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] +\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]| +\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<> +@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|" +(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t] +)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ +".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(? +:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[ +\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000- +\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|( +?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,; +:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([ +^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\" +.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\ +]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\ +[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\ +r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] +\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\] +|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0 +00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\ +.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@, +;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(? +:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])* +(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". +\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[ +^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\] +]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*( +?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ +".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:( +?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[ +\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t +])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t +])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(? +:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+| +\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?: +[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\ +]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) +?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[" +()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n) +?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<> +@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ + \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@, +;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t] +)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ +".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)? +(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". +\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: +\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[ +"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t]) +*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]) ++|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\ +.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z +|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:( +?:\r\n)?[ \t])*))*)?;\s*) +``` + +=> https://pdw.ex-parrot.com/Mail-RFC822-Address.html + +I hope you had some fun. E-Mail your comments to `paul@nospam.buetow.org` :-) + +other related posts are: + +=> ../ Back to the main site |
