In a large heavy-bottomed pan, combine the butter and olive oil. Add the onions and cook with the lid on for 10 minutes until soft. Pour in the sugar and cook for another 20 minutes, stirring frequently, until golden. When pinched between your fingers, the onions should be completely golden, and soft.
When the onions have been cooking for 20 minutes, add in the garlic cloves and stir well. Sprinkle in the flour and mix thoroughly.
Add the wine and gradually pour in the beef stock. Cover and simmer for 15-20 minutes, stirring occasionally.
Season to taste, add a dash of worcester sause (optional)
Toast the bread, then ladle the soup into bowls.
Put a slice of toast on top of the bowls of soup, then add the gruyère. Grill until melted