REGEXVAULTv2.0
Finance/Securities & Trading
Verified Safe

Options Contract Symbol (OCC Format) Regex for Python

/^([A-Z]{1,5})(\d{6})([CP])(\d{8})$/

What this pattern does

This page provides a well-structured, multi-part regular expression for matching options contract symbol (occ format), ported and verified for Python. Financial data validation has zero tolerance for false negatives — a missed invalid entry can corrupt downstream calculations. The snippet below is ready to drop into your Python project — whether you're validating in a Django view, a FastAPI endpoint, or a standalone data processing script.

Python Implementation

Python
# Options Contract Symbol (OCC Format)
# ReDoS-safe | RegexVault — Finance > Securities & Trading

import re

options_contract_symbol_occ_format_pattern = re.compile(r'^([A-Z]{1,5})(\d{6})([CP])(\d{8})$')

def validate_options_contract_symbol_occ_format(value: str) -> bool:
    return bool(options_contract_symbol_occ_format_pattern.fullmatch(value))

# Example
print(validate_options_contract_symbol_occ_format("AAPL240119C00200000"))  # True

Test Cases

Matches (Valid)
Rejects (Invalid)
AAPL240119C00200000AAPL2401190200000
TSLA240119P00250000aapl240119C00200000
SPY231215C00450000AAPL240119X00200000
MSFT240920C00350000AAPL24119C00200000

When to use this pattern

This pattern is drawn from the Finance > Securities & Trading category and carries a ReDoS-safe certification. That matters for Python developers because particularly important in Python web servers where CPU-bound regex operations can stall concurrent request handling. RegexVault audits patterns against known backtracking attack vectors, ensuring you have the necessary context before using this regex in a high-stakes production environment.

Common Pitfalls

The 21-char OCC symbol pads the ticker to 6 chars with spaces. This pattern matches the compact form without padding. The strike price is in thousandths of a dollar: 00200000 = $200.00.

Technical Notes

OCC format: 1-6 char ticker (right-padded with spaces in the 21-char version) + YYMMDD expiry + C or P + 8-digit strike price in 1/1000 of a dollar. Strike 00200000 = $200.000.

Have a pattern that belongs in the vault?

Submit it for review — community-verified patterns get credited to your GitHub handle. Free submissions join the queue. Priority review available for $15.

Submit a Pattern