Determine Tic-Tac-Toe winner (round based) Let's play some code-golf!

The challenge is to find the winner of a game of Tic-Tac-Toe.

This has been done many times by giving a board that has one clear winner but here is the twist:

The cells are numbered like this:

1|2|3
-+-+-
4|5|6
-+-+-
7|8|9


You get an array of exactly 9 moves like that:

{3, 5, 6, 7, 9, 8, 1, 2, 3}


This is parsed as follows:


Player 1 marks cell 3
Player 2 marks cell 5
Player 1 marks cell 6
Player 2 marks cell 7
Player 1 marks cell 9
Player 1 has won


Note: The game does not stop after one player has won, it may happen that the losing player manages to get three in a row after the winning player, but only the first win counts.

Your job is now to get 9 numbers as input and output the winning player and the round in which the win occured.
If no one wins, output something constant of your choice. You can receive input and provide output through any standard mean / format.

Have fun!

Some more examples as requested:

{2,3,4,5,6,7,1,8,9} =&gt; Player 2 wins in round 6
{1,2,4,5,6,7,3,8,9} =&gt; Player 2 wins in round 8
{1,2,3,5,4,7,6,8,9} =&gt; Player 2 wins in round 8
Retina, 114 bytes

(.)(.)
$1O$2X
^
123;;456;;789¶X
{`(.)(.*¶)(.)\1
$3$2
}`.*(.)(.)*\1(?&lt;-2&gt;.)*(?(2)(?!))\1.*¶(..)*
$1$#3
.*¶
T
T`d`Rd


Try it online! Based on my answer to Tic-Tac-Toe - X or O?. Outputs X&lt;N&gt; if the first player wins after N turns, O&lt;N&gt; if the second player wins, T if neither wins. Explanation:

(.)(.)
$1O$2X
^
123;;456;;789¶X


Creates an internal board, and also marks each move with the player whose move it is.

{`(.)(.*¶)(.)\1
$3$2


Applies a move.

}`.*(.)(.)*\1(?&lt;-2&gt;.)*(?(2)(?!))\1.*¶(..)*
$1$#3


Searches for a win, and if one is found, then replace the board with the winner and the number of remaining moves.

.*¶
T


If the moves are exhausted and nobody has won then the game is a tie.

T`d`Rd


Calculate the number of the round from the number of remaining moves.