import pandas as pd
import re

data = {
    'engine': [
        '150 HP 2000L Fuel: Petrol 4 cylinders',
        'Fuel: Diesel',
        '180 HP 2500L Fuel: Petrol 6 cylinders',
        '120 HP Fuel: Gasoline',
        '130 HP 1600L'
    ]
}

df = pd.DataFrame(data)
def extract_engine_info(engine):
    hp = re.search(r'(\d+)\s*HP', engine)
    size = re.search(r'(\d+)\s*L', engine)
    fuel = re.search(r'Fuel:\s*([A-Za-z]+)', engine)
    cylinders = re.search(r'(\d+)\s*cylinders', engine)
    
    return {
        'horse_power': hp.group(1) if hp else None,
        'engine_size': size.group(1) if size else None,
        'fuel_type': fuel.group(1) if fuel else None,
        'cylinders': cylinders.group(1) if cylinders else None
    }
engine_info = df['engine'].apply(extract_engine_info)
engine_df = pd.DataFrame(engine_info.tolist())
df = pd.concat([df, engine_df], axis=1)

print(engine_df)