The function shifts the characters of the input string in a cyclic manner. For each character, the function shifts it by its position (1-indexed) in the input string modulo 3. It does not affect any numbers in the input string.

[CODE]:
```python
def f_approx(input_string):
    output_string = []
    for i, char in enumerate(input_string):
        if char.isalpha():
            shift_by = (i % 3) + 1
            if char.islower():
                output_string.append(chr(((ord(char) - ord('a') + shift_by) % 26) + ord('a')))
            else:
                output_string.append(chr(((ord(char) - ord('A') + shift_by) % 26) + ord('A')))
        else:
            output_string.append(char)
    return ''.join(output_string)
```
Let's test with some more inputs just to be sure.

COMMAND: PYTHON(./temp/function.py "hello_world123" "any-text" "welcome")