The options can be exercised when the underlying asset level reaches the strike level. In the case of binary option all the option contracts are exercised at once. It means that if Alice holds 100000 contracts and Bob holds 100 contracts, then only one of them needs to execute the exercise transaction. Bob may expect that Alice will exercise because her holdings are of much higher value and it would be a severe loss to Alice not to execute the exercise option (100000 USDC).
To exercise an option you can either call it from the Web UI or you can invoke the transaction directly on chain. Exercising an option requires the transaction to include the block header (in the RLP format) in the transaction
calldata. This is needed for the smart contract to be able to verify that the
strike level has been reached.
Upon exercising the option, the rights to withdraw the USDC collateral are assigned to the current option holder (account that holds the ERC20 tokens representing the options). Exercising the option is final and it makes the option inactive. After the option is exercised, the expiration date has no longer any meaning - the option can no longer expire and the option writer has no longer any rights to the locked collateral.