1. self.relu(self.fc1(x))

It first pass x to a fully connected layer fc1(), then the output of fc1() is passed to a relu()
2. self.relu(self.hidden(x))

It seems it defined a hidden() layer somewhere in the model, and just like self.relu(self.fc1(x)), the output of this hidden() layer is passed to a relu()
3. self.fc1(self.hidden(x))

Similar
4. self.fc1(self.relu(self.hidden(x)))

Now it is a three-layer NN, hidden()->relu()->fc1()