Question: I have this line of code:

```
if self.include?("van " || "de " || "von ")

```

why doesn't the block included after this line execute when the third alternative of the or-operator is true?

When my string is `"von wartburg"` the block doesn't execute, but when my string contains `"van"` or `"de"` then it does.

Answer: 
The 'or' will always evaluate "van " [because of how || works](https://stackoverflow.com/questions/2083112/difference-between-or-and-in-ruby).

Try using a regular expression like:

```
self =~ /^(van\ |de\ |von\ )/

```
I think what you want is

```
if self.include?("van ") || self.include?("de ") || self.include?("von ")

```

Having the `||` inside the call to `include?` makes it only evaluate the first string. You want to test `include?` for each case.