Strange results from 'strings | sort'

Using the 'strings' command and piping the result to 'sort' is producing strange results. I get block of lines that begin with asterisks, then a block that begins with some text, then more lines that begin with asterisks. The actual content is correct - lines beginning with asterisks is the actual content of the file. My question is about the resulting sort order. Within a grouping things are in order, but I don't understand why the lines beginning with an asterisk are broken into two groups, separated by a group of lines that begin with an alphabetic character.

oracle:mydb$ strings spfilemydb.ora | sort
*.audit_file_dest='/u01/app/oracle/admin/mydb/adump'
*.audit_sys_operations=TRUE
*.audit_trail='DB'
*.compatible='12.1.
*.control_files='+DEV_DATA/mydb/controlfile/control01.ctl','+DEV_DATA/mydb/controlfile/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_create_file_dest='+DEV_DATA'
*.db_domain=''
*.db_file_name_convert='+DATA/dwprd/datafile','+DEV_DATA/MYDB/DATAFILE','+DATA/dwprd','+DEV_DATA/mydb'
*.db_name='MYDB'#Reset to original value by RMAN
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=mydbXDB)'
mydb.__data_transfer_cache_size=0
mydb.__db_cache_size=1392508928
mydb.__java_pool_size=167772160
mydb.__large_pool_size=251658240
mydb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
mydb.__pga_aggregate_target=436207616
mydb.__sga_target=2147483648
mydb.__shared_io_pool_size=0
mydb.__shared_pool_size=318767104
mydb.__streams_pool_size=0
*.event=''
*.java_pool_size=167772160
*.job_queue_
*.local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=REGISTER)))'
*.log_archive_dest_1='location=/backup/mydb/archive'
*.open_cursors=300
*.pga_aggregate_limit=2147483648
processes=1000
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=2147483648
*.sga_target=2147483648
*.shared_pool_reserved_size=8388608
*.shared_pool_size=255852544

You should provide your operating system details and the version of sort you are using if you want an educated reply instead of a guess.

OK, for the OS:

oracle:$ uname -a
Linux <redacted server>.<redacted domain> 3.8.13-118.4.2.el6uek.x86_64 #2 SMP Tue Mar 22 20:47:10 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux

I'm not sure how to determine the exact version of 'sort'. The bottom of the man page shows this:

GNU coreutils 8.4 

My guess is you have some string that sorts between "dispatchers" and "event", separated from "mydb" by a carriage return (<CR> = \r = 0x0D = ^M) character. string can be told to include all white space chars in its output.
Run string 's output through a hexdump, e.g. od -tx1c , and look for \r occurrances.

No joy.

strings spfiledwdev.ora |od -tx1c  > edslist.lis;view edslist.lis

Then simply searched for every occurrence of 'r'. It only showed up as occurrences of the text 'r' (x'72'). No occurrences as part of a control character.

This is not a show-stopper by any means. Just a very big curiosity.

Look for the "mydb..." lines, then. See if there are any abnormalities. Post a small but relevant excerpt of the output.