def parse_zreq(zreq):
    results = []
    # Split the input into individual tokens by space
    tokens = zreq.split(' ')

    for token in tokens:
        # Split by '/' to separate S, the middle data string, and V
        parts = token.split('/')
        
        # Ensure we have at least the basic structure
        s_val = parts[0] if len(parts) > 0 else ''
        middle_str = parts[1] if len(parts) > 1 else ''
        v_val = parts[2] if len(parts) > 2 else ''


        data = [] 
        # Check if the last character is alphanumeric
        if s_val[-1].isalnum():
            char_code   = t[-1]  
            prefix      = t[:-1]
            if prefix.isdigit():
                val = int(prefix)
                data.append(( val, char_code))

 

        # Process the comma-separated middle section
        if middle_str:
            for t in middle_str.split(','):
                if not t:
                    continue
                
                # Check if the last character is alphanumeric
                if t[-1].isalnum():
                    char_code = t[-1]       # The letter (e.g., 'B', 'R', 'F')
                    
                    # Extract the numeric prefix (e.g., '234' from '234B')
                    # We use a slice to get everything except the last character
                    prefix = t[:-1]
                    if prefix.isdigit():
                        val = int(prefix)
                        data.append(( val, char_code))
        
        results.append(data)
    
    return results

# Example usage with your provided string
zreq_input = ":rx 23F/264B,234B,28R,27R,234F,234F25N/<sign>"
parsed_data = parse_zreq(zreq_input)

# Displaying the output
print('44   :', zreq_input)
for idx, entry in enumerate(parsed_data):
    print(f"Token {idx}: {entry}")