Now to finish the remaining two regex crosswords in the Double Cross series.

Double Cross #4 (Big Mac)

Bigger and messier. Do give it a try before continuing. It is actually fairly easy.

[^pu\sh]+
[c\sou]+
(.)\1(.)\2
.[luh]+.*l+
(p|k)[^u]+[puf\s]*
.*c+[tif][tic]*
(no|one|ion)*[noi\se]+
[pif]+
.*[owe]*
(tn|lf|tf)*

Solve the Crossword

Looking at the regex for the first column, we see that characters 1 and 2 are the same. As are characters 3 and 4. The regexes for the first row don’t really help. The bottom column regex says the 1 and 2 characters must be one of [pif]+. And for the second row, the first character must be one of (p|k). So the first two characters of the first column must be ps.

Looking at the last row’s left regex, it should be clear that the row must be either one or ion. And, the first letter, based on the column’s bottom regex, must be one of [pif]+. So the row’s contents are ion. And the column is ppii.

Looking at the right regex for the top row we know the last character has to be l given the requirement of one or more ls (l+) at the end of the expression. And if we take the intersection of the involved regexes the 2nd character of the row must be u.

[^pu\sh]+
[c\sou]+
(.)\1(.)\2
.[luh]+pul.*l+
(p|k)[^u]+p[puf\s]*
.*c+[tif]i[tic]*
(no|one|ion)*ion[noi\se]+
[pif]+
.*[owe]*
(tn|lf|tf)*

Do you see the answer?

The second character in the second row must be white space, given the intersection of the four involved regexes. And looking at the bottom regex for the last column, its second character must be f. The only alternation that fits is lf given the column’s first character. Similarly the third character has to be a t to match the tn in the bottom regex’s alternation group.

That leaves one last character. And since the left regex on that row says there must be at least one c (c+) in the row, c it is.

[^pu\sh]+
[c\sou]+
(.)\1(.)\2
.[luh]+pul.*l+
(p|k)[^u]+pf[puf\s]*
.*c+[tif]ict[tic]*
(no|one|ion)*ion[noi\se]+
[pif]+
.*[owe]*
(tn|lf|tf)*

According to the puzzle site, the above is correct (there was apparently a discussion about burger names in France in the movie).

Double Cross #5 (The Lektor Device)

Wonder why all the last 4 Double Cross crosswords have only had 3 columns?

.{2}[st\sel]+
[are](.)[saint]+\1v
[^ro\se]*(whe|who)
(rr|fro)*[fr\so]+
[^saint]+(m\s|sm)[rose]
[\sush]*(s|us)+
[a\si]+[^aw]a.*
[with]*[^hear]+
[hel\s]+.*[fil]
.*(ve|o|vo)+
[^vys]+
.(\ssai).*
(le|\st|s|or)+

Solve the Crossword

First row quick and easy. Have to use rr or fro. Since row is three characters long must be fro.

For the second row the first two characters must be one of (m\s|sm) (right regex). The bottom regex for the second column does not allow using sm. So m\s it is. I.E. m followed by a blank space. The last character in the row has to be r. Given the first character is an o, the bottom regex for the column requires or for the first two characters.

Given the regex on the right of the third row, it must be sus or uss. The bottom regex for the column doesn’t allow s. So uss it is.

For the fourth row, the first character has to be an i. The right regex for the row doesn’t allow an a. And the top regex for the column doesn’t allow whitespace. The right regex for the row also specifies a literal a for the second character. Comparing the regexes for the third character says it is whitespace. And given it is white space, the bottom regex for that column says the character below it must be a t. (Pretty obvious where this is going.)

.{2}[st\sel]+
[are](.)[saint]+\1v
[^ro\se]*(whe|who)
(rr|fro)*fro[fr\so]+
[^saint]+mr(m\s|sm)[rose]
[\sush]*uss(s|us)+
[a\si]+ia[^aw]a.*
[with]*t[^hear]+
[hel\s]+.*[fil]
.*(ve|o|vo)+
[^vys]+
.(\ssai).*
(le|\st|s|or)+

The regex at the top of the first column tells us the last three characters must be one of (whe|who). Given that, the regex on the right of the bottom row tells us it can only accept an o. So who it is.

Looking at the last row, the regex on the right tells us the last two characters have to be one of (ve|o|vo). The bottom regex for the last column only allows for an e as its bottom character given the row choices. So last two character of the row are ve. (Note: top regex for middle column has a liteal v for the bottom character.) And last two characters for the column are le.

Comparing the regexes involved the middle character of second last row must be whitespace. Also note that the capture group and the \1 in the top regex says it must be whitespace.

One character, middle of 5th row. Looking at the intersection of the left regex for the row and top regex for the column, it has to be i.

.{2}[st\sel]+
[are](.)[saint]+\1v
[^ro\se]*(whe|who)
(rr|fro)*fro[fr\so]+
[^saint]+mr(m\s|sm)[rose]
[\sush]*uss(s|us)+
[a\si]+ia[^aw]a.*
[with]*wit[^hear]+
[hel\s]+hl.*[fil]
.*ove(ve|o|vo)+
[^vys]+
.(\ssai).*
(le|\st|s|or)+

And that was correct when entered on the Regex Crossword site.

Done

Don’t think I am quite done.

There is a set of puzzles called Volapük. According to Wikipedia:

Volapük is a constructed language created between 1879 and 1880 by Johann Martin Schleyer, a Catholic priest in Baden, Germany, who believed that God had told him in a dream to create an international language.

So, if we are going to be solving for words from Volapük, might prove challenging.

Until next time, whatever the subject, enjoy your time coding or solving regex puzzles at the keyboard.