So, in Lispy languages you can access the head and tail of a list with `car` and `cdr` (insert historical sidebar here about what these names originally meant). But maybe you want the second element of a list -- that is, the head of the tail of the list. Or maybe the list's elements are themselves lists and you want the tail of the head. And so on. For this reason, there are pair accessor shorthands: (caar ls) is shorthand for (car (car ls)), (cdar ls) is shorthand for (cdr (car ls)), and so on.

In the Racket docs (https://docs.racket-lang.org/reference/pairs.html#(part._.Pair_.Accessor_.Shorthands)), these pair accessor shorthands go all the way up to four levels of nesting: caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr, cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar, cddddr.

BUT WHY STOP THERE?!? Why can't I write `caaaaaaaaar` and have it just work?

4.10 Pairs and Lists

Therefore I propose that whenever the programmer writes c(a|d)*r, the language implementation ought to generate the appropriate nested sequence of car and cdr calls, no matter how deeply nested. I'll buy a drink for whoever implements this
c(a|d)ⁿr

@dpk YES

the author is entitled to 1 (one) drink

@dpk I assume this behavior is going into the R7RS standard