Adopting any deposit change at all is not as simple as "just change regex".
There are a few considerations:
Addresses must be generated, and generated properly. All generated addresses that are passed to the frontend must be valid otherwise you have now black-holed future user deposits.
Can your signing process sign for those new address types? ...
"Buy the dip" is used by traders even for legacy markets and nothing specific for Bitcoin.
This will undoubtedly incur high network fees
For paying less in fees while moving bitcoin from/to exchange do the following:
Use P2P exchanges: Bisq and HodlHodl
Use open source bitcoin wallets with active development and support for segwit
Use RBF for ...
I assume that you're referring to withdrawals, and I think that you're probably right if the company's backend relies on bitcoind to fully process transactions.
If the company's backend manually builds transactions, then that code needs to be updated. Even if you use a stateless bitcoind's RPC interface to build and sign transactions, you still need to ...
It is not as simple as checking the address format.
Different address formats represent different output types.
An address that starts with a "1" is a legacy pay-to-public-key-hash output. When writing wallet software signing transactions for this type of output requires a different order of operations to spend than let's say a pay-to-script-hash ...
You can use one of the Bitcoin exchanges and using their API, create something with the following logic:
current_balance = get_balance("BTC")
if current_balance > 0:
print("Sold %s" % current_balance)