Five English teams will make it through to the last 16 of the Champions League for the first time if Liverpool secure qualification on Wednesday.
Tottenham and Manchester City guaranteed top spots in their groups with a game to spare and Manchester United beat CSKA Moscow 2-1 on Tuesday to finish top of Group A.
Chelsea have also qualified for the last 16 but as runners-up in Group C after drawing 1-1 against Atletico Madrid on Tuesday. Antonio Conte’s side missed out on top spot because of their head-to-head record against group winners Roma.
The first game between the two teams ended in a 3-3 draw in London, but Roma won 3-0 in the return match in Italy.
On Wednesday, Liverpool will go through as Group E winners if they beat Spartak Moscow at Anfield in their final game. They will also qualify for the last 16 with a draw, although they would drop to second if Sevilla also beat Maribor.
If Liverpool lose against Spartak Moscow they could finish third, therefore dropping into the Europa League, depending on the result of Maribor v Sevilla match.
Clubs finishing first in their groups will be seeded and drawn against a second-placed team in the last 16. Sides cannot face teams from the same country or from their group.
Third-placed teams move into the Europa League.
Potential draw for English teams
Manchester United (Group A winners): Bayern Munich, Juventus, Group E runners-up (if it is not Liverpool), Group F runners-up, Group G runners-up, Real Madrid.
Chelsea (Group C runners-up): Paris St-Germain, Barcelona, Group E winners (if it is not Liverpool), Besiktas.
Manchester City (Group F winners): Basel, Bayern Munich, Juventus, Group E runners-up (if it is not Liverpool), Group G runners-up, Real Madrid.
Tottenham (Group H winners): Basel, Bayern Munich, Juventus, Group E runners-up (if it not Liverpool), Group F runners-up, Group G runners-up.
Here BBC Sport looks at the remaining group permutations.
Liverpool: Will go through as group winners if they beat Spartak Moscow at Anfield in their final game. Will also qualify for the last 16 with a draw.
Sevilla: Will definitely qualify with victory over Maribor and will go through with a draw if Spartak do not beat Liverpool. If Liverpool lose or draw and Sevilla win, the Spanish side will top the group.
Spartak Moscow: Victory at Anfield would take them through but anything less will mean they drop into the Europa League.
Maribor: Will finish bottom of the group having collected two points from their first five games.
Manchester City: Through as group winners having won their first five matches, including an impressive 4-2 victory at Napoli.
Shakhtar Donetsk: Will go through as runners-up if they avoid defeat at home to Manchester City in their final match.
Napoli: Need to beat Feyenoord and hope City beat Shakhtar.
Feyenoord: Will finish bottom having lost all five of their matches.
Besiktas: Through as group winners.
Porto: Will be guaranteed second place if they beat Monaco in their final game. A draw will do if RB Leipzig lose at home to Besiktas.
RB Leipzig: Will finish second if they beat Besiktas and Porto fail to beat Monaco. A draw would see them through should Porto lose.
Monaco: Last season’s semi-finalists are out of Europe having failed to win any of their first five matches.
Tottenham: Through as group winners in an impressive campaign including a win and a draw against defending champions Real Madrid.
Real Madrid: Qualify as runners-up.
Borussia Dortmund: Will qualify for the Europa League if Apoel lose at Tottenham. Otherwise need to match the Cypriots’ result.
Apoel Nicosia: Will finish third if they avoid defeat by Tottenham and Dortmund lose at Real Madrid.
Manchester United: Group winners.
FC Basel: Runners-up.
CSKA Moscow: Into the Europa League.
Paris St-Germain: Group winners.
Bayern Munich: Runners-up
Celtic: Into the Europa League.
Roma: Group winners (by having a better head-to-head record than Chelsea).
Atletico Madrid: Into the Europa League.
Barcelona: Group winners.
Sporting Lisbon: Into the Europa League.